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

Przechowywanie numerów kart kredytowych w SESSION - sposoby na obejście tego?

Przechowuj dane karty na dowolnym nośniku trwałości (baza danych, cokolwiek), ale zaszyfruj numer karty za pomocą unikalnego i losowego klucz, który przechowujesz w sesji. W ten sposób, jeśli sesja zostanie utracona, klucz też jest - co daje wystarczająco dużo czasu na wyczyszczenie wygasłych/porzuconych danych.

Upewnij się również, że Twoje sesje są chronione przed przejęciem. Istnieją na to rozwiązania sprzętowe, ale prostym sposobem w kodzie jest powiązanie identyfikatora sesji z hashem pierwszego oktetu adresu IP oraz agenta użytkownika. Nie jest niezawodny, ale pomaga.

Edytuj :Kluczem do zminimalizowania ryzyka jest jak najszybsze pozbycie się tych informacji. Zaraz po zakończeniu transakcji usuń rekord z bazy danych. Potrzebujesz również zadania kroczącego (powiedzmy co 5 minut), które usuwa wszelkie rekordy starsze niż limit czasu sesji (zwykle 20 minut). Ponadto, jeśli używasz bazy danych do tego bardzo dane tymczasowe, upewnij się, że nie znajdują się one w automatycznym systemie tworzenia kopii zapasowych.

Ponownie, to rozwiązanie nie jest niezawodne i nie jestem nawet w 100% pewien, że jest zgodne z wymogami bezpieczeństwa CC. Powinno to jednak wymagać od atakującego pełnej kontroli środowiska uruchomieniowego w celu aktywnego odszyfrowania informacji o CC klienta, a jeśli migawka Twojej bazy danych zostanie naruszona (bardziej prawdopodobna/powszechna), tylko jeden CC może być w danym momencie wymuszany brute, co jest najlepszym, na co możesz liczyć.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaplanować procedurę składowaną w MySQL

  2. Różnica między normalnym ajaxem a długim odpytywaniem

  3. Jak dołączyć do MySQL i Postgres w zmaterializowanym widoku na żywo

  4. MYSQL — Wybierz określoną wartość z pobranej tablicy

  5. Zaktualizuj klucz podstawowy Django MySQL