【发布时间】:2011-11-11 10:55:18
【问题描述】:
我有三本关于 PHP 或 PHP 和 MySQL 的书,其中一本可能有理由期望找到一些有关数据清理的内容,但我没有任何运气。是否有可靠的在线资源涵盖了清理数据的基础知识,无论是在将数据放入数据库之前还是在从数据库中提取数据之后显示之前?
【问题讨论】:
标签: php mysql sanitization
我有三本关于 PHP 或 PHP 和 MySQL 的书,其中一本可能有理由期望找到一些有关数据清理的内容,但我没有任何运气。是否有可靠的在线资源涵盖了清理数据的基础知识,无论是在将数据放入数据库之前还是在从数据库中提取数据之后显示之前?
【问题讨论】:
标签: php mysql sanitization
Stackoverflow 就是这样的资源。您的问题每天被问两次。
我之前就这个话题写了一个相当不错的答案:In PHP when submitting strings to the database should I take care of illegal characters using htmlspecialchars() or use a regular expression?
长话短说:对于动态 mysql 查询创建,您有 四种 不同的转义情况:
而臭名昭著的 PDO 仅涵盖其中的 两个。
对于带有 ENT_QUOTES 的 HTML htmlspecialchars 来说已经足够了。
但是,还有很多其他情况,例如文件名清理、邮件注入等
【讨论】:
Chris Shifflet 就此写了一本书,名为 Essential PHP Security。
【讨论】:
使用PDO和binding或者适合mysql的escape string function来输入数据。
使用htmlspecialchars 和ENT_QUOTES 以及正确的数据字符集以显示输出。
【讨论】: