PHP输入使用New 5.2进行过滤,想要从$ _POST / GET更改,如何清理这些?

时间:2011-08-25 18:04:01

标签: php sql-injection xss input-filtering

我想使用新的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的过滤器?

2 个答案:

答案 0 :(得分:1)

我相信之前曾多次询问过这个问题。

如果您使用prepared statements,则可以阻止SQL注入。

为了防止XSS,您不应该在用户输入HTML时显示(例如,通过FILTER_SANITIZE_SPECIAL_CHARS或其他方式将其转换为HTML实体),或者如果您想允许HTML,则应积极地将白名单标记为白名单。

答案 1 :(得分:1)

使用PDO或mysql转义字符串函数会对这些文件进行清理。

如果您有一个号码,例如一个ID我总是使用intval投射它,所以如果它不是数字,它将是0。