security_plus
루트, 제일브레이크, 에뮬레이터, 개발 모드 및 외부 저장소 실행과 같은 여러 가지 보안 경고를 감지하는 새로운 Flutter 플러그인입니다.
모든 보안 요구 사항을 처리하는 Flutter 플러그인
{"sdk":"flutter"}^2.0.2{"sdk":"flutter"}>=2.0.0 <7.0.0^5.4.2^2.4.6아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
A comprehensive Flutter security plugin that provides advanced security features for your Flutter applications, including root detection, emulator detection, and various security checks.
🛡️ Advanced Root Detection
📱 Emulator Detection
🔒 Security Checks
Add this to your package's pubspec.yaml file:
dependencies:
security_plus: ^3.0.1
1.Add the following permissions to your AndroidManifest.xml file:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
</manifest>
2.Add permission_handler for runtime permission management:
dependencies:
permission_handler: ^10.4.3
Add the following to your Info.plist file:
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to location when open to verify device security.</string>
import 'package:security_plus/security_plus.dart';
import 'package:permission_handler/permission_handler.dart';
Future<void> checkDeviceSecurity() async {
// Request location permission first
if (Platform.isAndroid) {
final status = await Permission.location.request();
if (!status.isGranted) {
// Handle permission denied
return;
}
}
// Perform security checks
try {
final isRooted = await SecurityPlus.isRooted;
final isEmulator = await SecurityPlus.isEmulator;
final isDevelopmentMode = await SecurityPlus.isDevelopmentModeEnable;
final isMockLocation = await SecurityPlus.isMockLocationEnabled;
final isExternalStorage = await SecurityPlus.isOnExternalStorage;
// Handle security check results
if (isRooted || isEmulator || isMockLocation) {
// Handle security risks
}
} catch (e) {
// Handle errors
}
}
try {
bool isRooted = await SecurityPlus.isRooted;
if (isRooted) {
// Handle rooted device
}
} catch (e) {
// Handle errors
}
try {
bool isEmulator = await SecurityPlus.isEmulator;
if (isEmulator) {
// Handle emulator detection
}
} catch (e) {
// Handle errors
}
try {
bool isDevelopmentMode = await SecurityPlus.isDevelopmentModeEnable;
if (isDevelopmentMode) {
// Handle development mode
}
} catch (e) {
// Handle errors
}
try {
bool isMockLocation = await SecurityPlus.isMockLocationEnabled;
if (isMockLocation) {
// Handle mock location
}
} catch (e) {
// Handle errors
}
try {
bool isOnExternalStorage = await SecurityPlus.isOnExternalStorage;
if (isOnExternalStorage) {
// Handle external storage detection
}
} catch (e) {
// Handle errors
}
The plugin employs multiple layers of root detection:
Check out the example directory for a complete sample application demonstrating all features.
| Android | iOS |
|---|---|
| ✅ | 🚧 |
Contributions are welcome! If you find a bug or want a feature, please open an issue.
This project is licensed under the MIT License - see the LICENSE file for details.
Created and maintained by Abdelrahman Bonna.
This plugin provides security features but should not be considered as the sole security measure for your application. Always implement multiple layers of security and keep your security measures up to date.