1

我对如何避免 Xss 注入和删除标签有一些疑问:

我正在使用 sommernote,我想允许一些标签,如<br>, <p>, <strong>, etc.. 我可以使用函数 strip_tags() 但如果有人写符号更大 (>) 或更少 (<),例如:

(4 > 5)。

这已被删除,我想保留它。

此外,我需要知道输入文本的正确长度,因为我不想允许超过 N 个字符,比如说不超过 300 个字符。为了得到这个,我会使用 strip_tags() 但字符串被截断,正如我之前提到的。我怎样才能做到这一点?

显然,我想避免 XSS 注入,所以我会使用htmlentities(strip_tags(string), ENT_QUOTES)保存在数据库中,当我想在主页中显示内容时,我会使用 html_entity_decode(string),这足以避免它吗?

提前致谢

4

1 回答 1

2

不要使用strip_tags!如果用户尝试输入类似The bob said <the-secret>的内容,它将被剥离!htmlentities是不必要的。你想要htmlspecialchars

$input = "<script>alert('ur screwed')</script>";
echo htmlspecialchars($input);

退货&lt;script&gt;alert('ur screwed')&lt;/script&gt;。用 解码htmlspecialchars_decode

于 2014-04-18T02:54:53.643 回答