我想使用新的PHP 5>输入过滤来清理和验证发布的数据,我理解如何使用filter_input函数。但我并不完全清楚我需要清理数据库插入数据所需的内容。发送电子邮件。
基本上,我想清理我的数据(不验证,我知道如何做到这一点),这样我在后端处理是安全的(即:防止sql注入,XSS等)。
让我们说这样做:
// What do I need to do to sanitize this data for SQL as best as possible.
$var = filter_input(INPUT_POST, 'id', FILTER_VALIDATE_INT, array()); //Validate Example
Here is a Link to the PHP filter documentation.有点混淆这么多类型!其中,我需要使用哪些过滤器来转义所有危险数据。我假设我以与上面相同的方式使用它们。这是对的吗?
基本上..如何使用新的filter_input函数清理所有危险数据,我需要哪些here的过滤器?
答案 0 :(得分:1)
我相信之前曾多次询问过这个问题。
如果您使用prepared statements,则可以阻止SQL注入。
为了防止XSS,您不应该在用户输入HTML时显示(例如,通过FILTER_SANITIZE_SPECIAL_CHARS
或其他方式将其转换为HTML实体),或者如果您想允许HTML,则应积极地将白名单标记为白名单。
答案 1 :(得分:1)
使用PDO或mysql转义字符串函数会对这些文件进行清理。
如果您有一个号码,例如一个ID我总是使用intval
投射它,所以如果它不是数字,它将是0。