Skip to content

Security Response Strategies

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);
}

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))
);
}

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();
};
}