如何验证Summernote中的文本 - Php

时间:2014-04-18 02:40:46

标签: php xss code-injection summernote

我有一些关于如何避免Xss注入和删除标签的问题:

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

(4> 5)。

这已删除,我想保留它。

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

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

提前致谢

1 个答案:

答案 0 :(得分: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解码。