應用安全(App Security)是指確保應用程序免受各種威脅和攻擊,保護用戶的數據和隱私。
常見的應用安全措施有:
加密儲存的數據
import 'package:encrypt/encrypt.dart' as encrypt;
final key = encrypt.Key.fromLength(32); // 使用 256-bit 密鑰
final iv = encrypt.IV.fromLength(16); // 初始化向量
final encrypter = encrypt.Encrypter(encrypt.AES(key));
// 加密數據
String encryptData(String plainText) {
final encrypted = encrypter.encrypt(plainText, iv: iv);
return encrypted.base64;
}
// 解密數據
String decryptData(String encryptedText) {
final decrypted = encrypter.decrypt64(encryptedText, iv: iv);
return decrypted;
}
使用 Firebase Authentication 進行用戶登錄
import 'package:firebase_auth/firebase_auth.dart';
// 登錄
Future<void> signInWithEmailPassword(String email, String password) async {
try {
UserCredential userCredential = await FirebaseAuth.instance.signInWithEmailAndPassword(
email: email,
password: password,
);
// 登錄成功,執行相關操作
} catch (e) {
print("登錄錯誤: $e");
// 處理登錄錯誤
}
}
發送帶有 Bearer Token 的 HTTP 請求
import 'package:http/http.dart' as http;
Future<void> fetchData() async {
final response = await http.get(
Uri.parse('https://api.example.com/data'),
headers: {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN', // 在這裡替換為真實的 token
},
);
if (response.statusCode == 200) {
// 處理成功響應
print("數據: ${response.body}");
} else {
// 處理錯誤響應
print("請求錯誤: ${response.statusCode}");
}
}
使用 ORM 進行安全的資料庫查詢
import 'package:moor/moor.dart';
@DataClassName('User')
class Users extends Table {
IntColumn get id => integer().autoIncrement()();
TextColumn get name => text().withLength(min: 1, max: 50)();
TextColumn get email => text().withLength(min: 1, max: 100)();
}
@UseMoor(tables: [Users])
class AppDatabase extends _$AppDatabase {
AppDatabase(QueryExecutor e) : super(e);
@override
int get schemaVersion => 1;
Future<List<User>> getAllUsers() => select(users).get();
Future<void> insertUser(User user) => into(users).insert(user);
}
我們明天見~