我已经使用HTML purifier清除了面向WYSIWYG编辑器的任何可疑内容。传入的HTML也会显示在网站的公共部分。
我已经允许链接,并且我还自动以纯文本链接化URL(使用净化器)。
有没有办法允许外部链接,但禁止链接到同一个域?例如,我的域名是www.example.com
http://www.example.com/logout/不会被链接。
我正在考虑尽量减少恶意用户的干扰。我应该只使用POST键/值对进行注销链接以阻止这种情况发生吗?
由于
答案 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