安全性对我来说是一个大问题。我网站的最后一个版本几乎没有安全性,我们遇到了很多问题,所以这一次我希望尽可能安全。
所有用户输入都通过一个剥离标签的功能(允许<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;
}
答案 0 :(得分:0)
一般来说,输出应该在不可信任时进行清理。在99%的情况下,这意味着用户输入。例如,原始回显用户输入是邀请某人使用您的网站加载(例如)攻击文件并诱骗某些用户点击加载所述数据的网站链接。
htmlspecialchars
是一个好的开始,但您需要确保您不信任用户输入的数据。这意味着您定义了您期望的内容,然后将其与您可以输出的内容进行匹配。也许你也需要strip_tags
。也许你需要一个正则表达式。安全性没有真正的“一刀切”答案。