Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khi nào thì tôi KHÔNG nên sử dụng mysql_real_escape_string

Đó là một ý tưởng tồi vì một vài lý do:

  • Đầu tiên, nó giả định rằng đầu vào của bạn sẽ luôn đi vào cơ sở dữ liệu và chỉ vào cơ sở dữ liệu. Điều gì sẽ xảy ra nếu thứ gì đó sẽ được sử dụng trong đầu ra HTML? Hoặc trong một email? Được ghi vào một tập tin? Hoặc nhiều thứ khác .. bộ lọc của bạn phải luôn phân biệt ngữ cảnh.
  • Quan trọng hơn, nó khuyến khích việc sử dụng GET, POST, v.v ... không có dấu hiệu cho thấy chúng đã được lọc. Nếu ai đó thấy bạn sử dụng

    echo $ _POST ['name'];

    trên một trang, làm thế nào họ biết nó đã được lọc? Hay thậm chí tệ hơn ... bạn có chắc là nó đã từng xảy ra không? Điều gì về ứng dụng khác? Bạn biết không, một trong những bạn vừa được giao? Các nhà phát triển mới sẽ làm gì? Họ thậm chí có biết rằng lọc là quan trọng không?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để bạn thay đổi kiểu đối chiếu cho một cột MySQL?

  2. Có một lệnh MySQL để triển khai một cái gì đó như bảng thả ngoại trừ t1, b2 không?

  3. Chèn nhiều hàng vào cơ sở dữ liệu MySQL từ một bảng

  4. Có an toàn khi so sánh các chuỗi với 'lớn hơn' và 'nhỏ hơn' trong MySQL không?

  5. Tham gia bảng có giá trị MAX từ một bảng khác