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

Czy mam mysql_real_escape_string hasło wpisane w formularzu rejestracyjnym?

Cóż, jest jedno poważne nieporozumienie.

mysql_real_escape_string() nie oczyść wszystko. Nie ma to w ogóle nic wspólnego z bezpieczeństwem.

Ta funkcja służy tylko do ucieczki od ograniczników i nic więcej. Może pomóc w umieszczeniu danych łańcuchowych w zapytaniu SQL — to wszystko.

Tak więc każdy ciąg, który zamierzasz umieścić w zapytaniu (w cudzysłowie), musisz przygotować za pomocą tej funkcji. We wszystkich innych przypadkach byłoby to bezużyteczne, a nawet szkodliwe.

Tak więc,
z tego nieporozumienia, popełniasz tutaj 2 główne błędy:

  • używasz tej funkcji nie z danymi, które faktycznie trafiają do zapytania
  • możesz zepsuć swoje hasło, dodając do niego kilka symboli, więc stanie się bezużyteczne

Na marginesie, pamiętaj, że ta funkcja powinna być zawsze używana w połączeniu z mysql_set_charset lub w inny sposób "_real_" część tej funkcji staje się bezużyteczna



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Połączenie JDBC — Class.forName vs Class.forName().newInstance?

  2. sporadyczny serwer MySQL zniknął błąd

  3. Zagnieżdżone relacje z Sequelize

  4. Nieudane przetwarzanie format-parameters za pomocą mysql.connector w Pythonie

  5. Przewodnik dla początkujących po procedurach składowanych z MySQL?