Security Response Strategies
Strategy 1: Graceful Degradation
Section titled “Strategy 1: Graceful Degradation”Reduce access gradually instead of always terminating the session immediately:
import { AlphynSDK } from '@alphyn/react-native-sdk';
async function applySecurityPolicy() { const result = await AlphynSDK.performScan();
if (result.isSafe) { enableAllFeatures(); return; }
if (result.rejectReasons.length < 3) { disableSensitiveFeatures(); showSecurityWarning(result.rejectReasons); return; }
disableCriticalFeatures(); showCriticalSecurityAlert(result.rejectReasons);}Strategy 2: Risk-Based Decision Making
Section titled “Strategy 2: Risk-Based Decision Making”React to specific detections differently:
import { AlphynSDK } from '@alphyn/react-native-sdk';
async function evaluateSecurity() { const reasons = await AlphynSDK.getRejectReasons();
const criticalIndicators = [ 'FRIDA_DETECTED', 'FRIDA_SERVER_RUNNING', 'SIMULATOR_RUNTIME', 'HOOK_DETECTED', 'TAMPERED', 'REPACKAGED', ];
const debuggerIndicators = [ 'DEBUGGER_SYSTEM_CHECK', 'DEBUGGER_PROCESS_CHECK', 'DEBUGGER_EXCEPTION_CHECK', ];
if (containsAny(reasons, criticalIndicators)) { blockSensitiveFlows(); return; }
if (containsAny(reasons, debuggerIndicators)) { restrictDebugSensitiveActions(); return; }
proceedNormally();}
function containsAny(reasons: string[], indicators: string[]) { return reasons.some((reason) => indicators.some((indicator) => reason.toUpperCase().includes(indicator)) );}Strategy 3: Continuous Monitoring
Section titled “Strategy 3: Continuous Monitoring”Monitor security state after initialization and re-check when your app returns to the foreground:
import { AppState } from 'react-native';import { AlphynSDK } from '@alphyn/react-native-sdk';
export function startContinuousMonitoring() { const intervalId = setInterval(async () => { const reasons = await AlphynSDK.getRejectReasons(); if (reasons.length > 0) { console.warn('Threats detected:', reasons); } }, 5 * 60 * 1000);
const appStateSubscription = AppState.addEventListener('change', async (state) => { if (state === 'active') { const result = await AlphynSDK.performScan(); console.log('Foreground security check:', result.primaryRiskFactor); } });
return () => { clearInterval(intervalId); appStateSubscription.remove(); };}