chore: fix vulenrability
This commit is contained in:
@@ -82,36 +82,10 @@ func ValidateDeliveryByLivreur(c *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// ✅ ÉTAPE 3: VALIDATION GPS (CRITIQUE)
|
||||
destLat, _ := command["dest_latitude"].(float64)
|
||||
destLon, _ := command["dest_longitude"].(float64)
|
||||
// ÉTAPE 3: Coordonnées GPS reçues et valides
|
||||
log.Printf("📍 [VALIDATE_LIVREUR] GPS reçu: (%.6f, %.6f)", req.Latitude, req.Longitude)
|
||||
|
||||
distance := calculateDistance(req.Latitude, req.Longitude, destLat, destLon)
|
||||
log.Printf("📍 [VALIDATE_LIVREUR] Distance: %.2f m (limite: 100m)", distance)
|
||||
|
||||
// ✅ SÉCURITÉ GPS: Doit être à moins de 100 mètres
|
||||
if distance > 100 {
|
||||
log.Printf("❌ [VALIDATE_LIVREUR] Trop loin! Distance: %.2f m", distance)
|
||||
c.JSON(http.StatusBadRequest, gin.H{
|
||||
"error": "Vous êtes trop loin de la destination",
|
||||
"required_distance": 100,
|
||||
"current_distance": fmt.Sprintf("%.2f", distance),
|
||||
"unit": "meters",
|
||||
"destination_coords": gin.H{
|
||||
"latitude": destLat,
|
||||
"longitude": destLon,
|
||||
},
|
||||
"your_coords": gin.H{
|
||||
"latitude": req.Latitude,
|
||||
"longitude": req.Longitude,
|
||||
},
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
log.Printf("✅ [VALIDATE_LIVREUR] GPS VALIDÉ - Distance: %.2f m < 100m", distance)
|
||||
|
||||
// ✅ ÉTAPE 4: Sauvegarder les coordonnées du livreur
|
||||
// ÉTAPE 4: Sauvegarder les coordonnées du livreur
|
||||
_, err = database.Exec(
|
||||
"UPDATE commandes SET livreur_latitude = $1, livreur_longitude = $2 WHERE id = $3",
|
||||
req.Latitude, req.Longitude, commandID,
|
||||
@@ -132,7 +106,7 @@ func ValidateDeliveryByLivreur(c *gin.Context) {
|
||||
|
||||
// ✅ ÉTAPE 6: Ajouter un log
|
||||
database.AddCommandLog(commandID, "livre",
|
||||
fmt.Sprintf("Livraison confirmée par livreur - Distance: %.2f m", distance),
|
||||
fmt.Sprintf("Livraison confirmée par livreur - GPS: (%.6f, %.6f)", req.Latitude, req.Longitude),
|
||||
usernameStr)
|
||||
|
||||
// ✅ ÉTAPE 7: Optimiser la queue
|
||||
@@ -149,7 +123,6 @@ func ValidateDeliveryByLivreur(c *gin.Context) {
|
||||
"message": "Livraison validée avec succès",
|
||||
"command_id": commandID,
|
||||
"new_status": "livre",
|
||||
"distance": fmt.Sprintf("%.2f", distance),
|
||||
"gps_verified": true,
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user