php - 用于 SQL 注入(inject)性能的最佳函数

标签 php mysql sql-injection

<分区>

Possible Duplicate:
Best way to stop SQL Injection in PHP

我想知道最好使用哪些函数来防止 MySQL 注入(inject)

我可以使用很多函数来防止 sql 注入(inject),例如:

  • mysql_real_escape_string
  • mysqli_real_escape_string
  • 添加斜杠
  • 为数字转换值(intval 等...)
  • htmlentitiesENT_QUOTES
  • 或简单地删除 '"

我想使用最好和更快的反 SQL 注入(inject)方法来标准化我的代码,我想知道我应该为高流量站点使用哪种方法。

最佳答案

你不应该使用 htmlentities 将数据保存到数据库,addslashes 不是 100% 安全的(一些字符集仍然可以使它容易受到攻击),使用 mysql_ 或 mysqli_ 取决于你使用的驱动程序并且不可互换.基本上,这不是速度或性能的问题 - 唯一正确的做法是使用驱动程序附带的转义函数(pdo::escape 或 mysql[I]_real_escape_string)来转换字符串并将整数/ float 转换为正确的类型.

关于php - 用于 SQL 注入(inject)性能的最佳函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8207167/

相关文章:

php - 使用 PHP multi_query 到 DROP TABLE 的 SQL 注入(inject)

mysql - 如何保护 Rails find_by_SQL 语句免受 SQL 注入(inject)?

PHP-MYSQL 连接不工作

mysql - 使用两个标准排序的 Drupal View

javascript - WordPress 的动态行简码

java - 同样的老故事 : Tomcat DBCP + MySQL, MySQLNonTransientConnectionException:连接关闭后不允许操作

c# - 在 Entity Framework 4.0 中显示 "Nested transactions are not supported"错误?

c# - SQL 注入(inject)攻击和 Subsonic

php - Web 浏览器中 php 页面中的 Unicode 字体显示为?标记,我该如何更正它?

php - 如何在值包含两个或多个单词的数组中搜索字符串 (PHP)