Update: 2026-06-25 01:03:54
This commit is contained in:
@@ -33,7 +33,7 @@ try {
|
||||
|
||||
// التحقق من الجهاز من خلال البصمة
|
||||
$stmt = $con->prepare('
|
||||
SELECT passengerID, fingerprint
|
||||
SELECT passengerID, fingerPrint
|
||||
FROM tokens
|
||||
WHERE passengerID = :pid
|
||||
LIMIT 1
|
||||
@@ -42,6 +42,7 @@ try {
|
||||
$row = $stmt->fetch();
|
||||
|
||||
$fpVerified = false;
|
||||
$fpJustSaved = false;
|
||||
if ($row) {
|
||||
$fpPepper = getenv('FP_PEPPER') ?: '';
|
||||
$storedFp = $row['fingerprint'];
|
||||
@@ -56,6 +57,16 @@ try {
|
||||
} else {
|
||||
$fpVerified = hash_equals($storedFp, $fingerprint);
|
||||
}
|
||||
|
||||
// إذا كانت البصمة المخزنة فارغة (أول تسجيل دخول بعد التسجيل) نقبل البصمة الجديدة
|
||||
if (!$fpVerified && empty($storedFp) && !empty($fingerprint)) {
|
||||
$fpPepper = getenv('FP_PEPPER') ?: '';
|
||||
$newHash = $fpPepper ? hash('sha256', $fingerprint . $fpPepper) : $fingerprint;
|
||||
$updateStmt = $con->prepare('UPDATE tokens SET fingerPrint = :fp WHERE passengerID = :pid');
|
||||
$updateStmt->execute([':fp' => $newHash, ':pid' => $passengerId]);
|
||||
$fpVerified = true;
|
||||
$fpJustSaved = true;
|
||||
}
|
||||
}
|
||||
|
||||
// وقت رد ثابت لمنع Timing Attack
|
||||
|
||||
Reference in New Issue
Block a user