在允许人们将内容发布到我的网站时,如何确保URL指向安全,非成人,非垃圾内容?

时间:2011-01-31 16:13:57

标签: php validation

我正在开发一个PHP网站,允许用户发布与网站主题相关的商家信息。这包括单个链接URL,一些文本和图像文件的可选URL。

示例:

<img src="http://www.somesite.com" width="40" />
<a href="http://www.abcbusiness.com" target="new">ABC Business</a>
<p>
Some text about how great abc business is...
</p>

使用htmlpurifier.org中的类过滤文本中的HTML,并检查内容是否有坏词,所以我觉得这部分非常好。

图像文件URL始终位于<img src="" />标记内,其宽度固定,并且已验证为实际的HTTP URL,因此应为“确定”。

危险的部分是链接。

问题: 如何确定该链接不指向某些垃圾邮件,不安全或色情网站(使用代码)?

我可以检查404等标题...但是有一种快速简便的方法可以从链接验证网站内容。

编辑:

我正在使用CAPTCHA,并且在允许发布之前需要注册。

4 个答案:

答案 0 :(得分:8)

  

有一种快速简便的方法来验证链接中的网站内容。

没有。没有全局白/黑名单的URL可用于以某种方式过滤掉“坏”网站,特别是因为您对“坏”网站的定义非常不具备。

即使你可以查看一个URL并告诉它指向的页面是否包含不良内容,这些日子很容易伪装一个URL。

如果你真的需要阻止这种情况,你应该调整你的内容。任何自动化解决方案都将是不完美的,无论如何你最终会手动调节。

答案 1 :(得分:8)

通过抓取有问题的网站网址来尝试自行确定是非常困难的。你可能想要依赖一些可以检查你的第三方API。

http://code.google.com/apis/safebrowsing/

查看该API,您可以向其发送一个URL,它会告诉您它的想法。这个主要是检查恶意软件和网络钓鱼......而不是色情和垃圾邮件。还有其他人做同样的事情,只是在谷歌搜索。

答案 2 :(得分:2)

也许是手动审核。除了使用某种黑名单之外,我想不出任何自动化的方法,但即便如此,由于新的网站可能不在列表中,因此并不总是可靠的。

此外,您可以尝试使用cURL并下载索引页面并查找会引发红旗的某些关键字,然后可能会保留这些关键字以进行手动验证。

我建议在阵列中列出这些关键字(色情,性别等)。如果您使用cURL下载的索引页面具有任何关键字,请拒绝或标记以进行审核。

这不可靠,也不是批准链接的最佳方式。

最终,您应该手动审核,但如果您希望自动化,这是您可以选择的途径。

答案 3 :(得分:0)

您可以创建一个小型监控系统,用于传输用户

创建的内容

到只有管理员才能访问的批准队列,以批准应该

的内容

显示在网站