如何检测传出链接(apache,php ..)

时间:2012-01-29 00:09:38

标签: php apache hyperlink external

我正在开发一个网站,但在某些时候,我需要检测我网站上的外发链接,并且要么禁止链接,要么接受,我不知道facebook是如何做到的,但是他们可以通过facebook.com/l.php来完成,如果链接被标记为垃圾邮件,用户将收到有关它的通知。

我不知道这是不是php或htaccess,它使用DOMDOCUMENT在php中工作,但它不是真正的解决方案。

3 个答案:

答案 0 :(得分:1)

这不是您在Apache或.htaccess级别上解决的问题。基本上,无论何时输出链接,检查它是否是外部链接,如果是,请将目标更改为重定向器。

然后,重定向器可以只检查传递的URL,如果它被标记为恶意,它可以显示一条消息,如果不是,那么它可以自动重定向或显示某种通知,即您要离开网站

答案 1 :(得分:0)

l.php是一个通过$_GET['u']读取链接的脚本。手中的URL会决定您希望客户端重定向到哪里。

从外观上看,您希望用户教您的应用程序什么是垃圾邮件,什么不是垃圾邮件。为此,您需要一个按钮"报告垃圾邮件"在网址旁边。

答案 2 :(得分:0)

我并非100%确定Facebook如何实现它,但我建议使用JQuery(或其他javascript库)重写所有外部链接以验证PHP脚本(例如Facebook' s l.php脚本),w /目标url作为GET参数传递。

使用JQuery,它可能看起来像:

$('a[href]').each(function(){
  var safe_href = 'http://yourdomain.com/yourscript.php?url='+$(this).attr('href');
  $(this).attr('href', safe_href);
});

然后,您可以根据变量$_GET['url']在yourscript.php中执行数据库查找,如果安全,则重定向到该网址,如果不是,则会显示消息。< / p>