2011-04-05 47 views

回答

2

最简单的方法是用&lt;>替换<然后用&gt;替换,然后将帖子插入到数据库中。

这是基本的出发点,您可以将某些标签列入白名单并稍后展开,但这样可以保护您免受任何HTML注入的侵害。

或者,您可以使用某种HTML编码功能来清理输入。

-1

您需要了解input sanitization

+0

inpuit sanitazation是一个矛盾 - 问题是输入验证和输出santitization – symcbean 2011-04-05 15:06:03

+0

消毒是验证的一种形式。请参阅OWASP:http://www.owasp.org/index.php/Data_Validation#Sanitize – syrion 2011-04-05 15:08:55

0

如果你想阻止他们使用任何HTML 在所有的,你可以使用htmlspecialchars()。在存储到数据库之前或在输出页面之前,您可以选择是否这样做(大多数人会建议在使用输出之前立即清理输出,即输出页面时)。

+2

我不同意这种说法。如果您在进入数据库之前进行清理,那么这是一次性操作。如果您在输出时进行清理,则每次使用数据时都必须执行清理。 – syrion 2011-04-05 15:01:03

0

您可以使用 strip_tags 来消除所有标记。

如果你只剥去<&lt;>&gt;你会以很多垃圾进入存储的数据库条目。

但是,如果你是一个论坛,也许你应该实现一个特定的方法,让你的用户个性化一点点他们的帖子,一拉计算器..

您可以创建一个特殊的词表,或只是让一些标签。检查this site