什么输出应该消毒?

时间:2014-06-02 03:06:04

标签: php pdo sanitization

安全性对我来说是一个大问题。我网站的最后一个版本几乎没有安全性,我们遇到了很多问题,所以这一次我希望尽可能安全。

所有用户输入都通过一个剥离标签的功能(允许<p><b>并修剪字符串。然后使用pdo预编译语句将其上传到网站。

我现在要回去输出一切,我想知道究竟需要消毒什么。我有很多查询可以获取整数(纪元时间和内容等),如果它们被消毒以避免任何问题吗?

我还有一些特定的部分,使用用户输入中的<P><b>标签,例如关于我的用户个人资料等。我的Output_paragraph功能是否不正确?

// Output Sanitation
function output($input) {
    $output = htmlspecialchars($input);

    return $output;
}

// Paragraph Output Sanitation
function output_paragraph($input) {
    $output = htmlspecialchars($input);
    $output = htmlspecialchars_decode($output);

    return $output;
} 

1 个答案:

答案 0 :(得分:0)

一般来说,输出应该在不可信任时进行清理。在99%的情况下,这意味着用户输入。例如,原始回显用户输入是邀请某人使用您的网站加载(例如)攻击文件并诱骗某些用户点击加载所述数据的网站链接。

htmlspecialchars是一个好的开始,但您需要确保您不信任用户输入的数据。这意味着您定义了您期望的内容,然后将其与您可以输出的内容进行匹配。也许你也需要strip_tags。也许你需要一个正则表达式。安全性没有真正的“一刀切”答案。