【发布时间】:2012-02-22 15:34:51
【问题描述】:
我一直在使用 mysql_real_escape_string 和其他函数来清理我的输入,并且最近读到 Prepared Statements 是真正安全的唯一方法。但是我不愿意使用它们有两个原因:我不想重写代码,而且我读到使用它们会影响性能(查询在此应用程序中广泛使用)。
所以我正在寻找一个最近的具体示例,说明 mysql_real_escape_string 在查询中失败的位置,解决方法是使用准备好的语句(即没有办法进一步清理输入并保证它是安全的)。
我问这个是因为我能找到的唯一一个符合上述标准的例子是很久以前的,并且已经在更新版本的 php.ini 中进行了修补。
【问题讨论】:
-
你能从你读到“准备好的声明是真正安全的唯一方法”的地方获取信息吗?似乎很奇怪,做出这样的声明却没有提供一些关于为什么 mysql_real_escape_string 被认为不那么安全的见解。
-
请看这个stackoverflow问题的最高答案:stackoverflow.com/questions/2353666/…
标签: php prepared-statement mysql-real-escape-string