使用HTML Purifier停止指向自己网站的链接

时间:2009-11-09 04:52:33

标签: php html wysiwyg htmlpurifier

我已经使用HTML purifier清除了面向WYSIWYG编辑器的任何可疑内容。传入的HTML也会显示在网站的公共部分。

我已经允许链接,并且我还自动以纯文本链接化URL(使用净化器)。

有没有办法允许外部链接,但禁止链接到同一个域?例如,我的域名是www.example.com

http://www.google.com将被链接。

http://www.example.com/logout/不会被链接。

我正在考虑尽量减少恶意用户的干扰。我应该只使用POST键/值对进行注销链接以阻止这种情况发生吗?

由于

1 个答案:

答案 0 :(得分:3)

您的登录/退出表格应始终仅限POST。

不要担心验证值,但这是一个非常重要的安全问题 - 任何改变Web服务器状态的事务都应该是POST请求。您不应该允许http://example.com/object?action=delete或其任何变体。 PHP鼓励在这个问题上做坏事,但你应该总是使用其中一个,而且绝不允许这两个。

如果您的用户可以在您的WYSIWYG编辑器中编写表单,那么您遇到的问题要远远大于此。

要回答原始问题,要停用内部链接,请使用URI.HostBlacklist并确保设置URI.MakeAbsolute

http://htmlpurifier.org/live/configdoc/plain.html#URI.HostBlacklist