Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Ukrywanie prawdziwego identyfikatora obiektu bazy danych w adresach URL

To pytanie było często zadawane, z innym doborem słów (co sprawia, że ​​trudno powiedzieć:„Po prostu poszukaj tego!”). Fakt ten skłonił do opublikowania posta na blogu zatytułowanego The Kompleksowy przewodnik po szyfrowaniu parametrów URL w PHP .

Co ludzie chcą tutaj robić

Co ludzie powinni zrobić zamiast tego

Wyjaśnienie

Zazwyczaj ludzie chcą krótkie losowo wyglądające adresy URL. To nie daje dużo miejsca na szyfrowanie, a następnie uwierzytelnianie identyfikator rekordu bazy danych, który chcesz zaciemnić. Wykonanie tego wymagałoby minimalnej długości adresu URL 32 bajty (dla HMAC-SHA256), co oznacza 44 znaki po zakodowaniu w base64.

Prostszą strategią jest wygenerowanie losowego ciągu (patrz random_compat dla implementacji PHP5 random_bytes() i random_int() do generowania tych ciągów) i zamiast tego odwołaj się do tej kolumny.

Ponadto hashidy są zepsute przez prostą kryptoanalizę. Ich konkluzja stwierdza:

Opisany przeze mnie atak jest znacznie lepszy niż atak brute force, więc z punktu widzenia kryptograficznego algorytm jest uważany za zepsuty, dość łatwo jest odzyskać sól; umożliwiając atakującemu uruchomienie kodowania w dowolnym kierunku i unieważnienie właściwości 2 dla idealnej funkcji mieszającej.

Nie polegaj na tym.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Importuj bazę danych do MySQL lub MariaDB

  2. Zmień hasło użytkownika MySQL

  3. Błąd podczas usuwania bazy danych (nie można rmdir '.test\', errno:17)

  4. Jak uzyskać dzisiejsze rekordy w MySQL

  5. Wypełnij pole rozwijane z tabeli mySQL w PHP