Facebook“赞”按钮不是“喜欢”安全文件夹中的内容?

时间:2011-02-22 07:17:40

标签: facebook facebook-like authentication

我正在实施facebook“赞”按钮。

一切正常
    <fb:like 
href="http://www.thismydomain123.com/IlikeThisPage.php?id=123" 
layout="standard" 
show_faces="false" 
width="450" 
action="like" 
colorscheme="light" />  

但是将可共享内容放在安全文件夹中是不行的(直接访问该文件夹会提示“mySecureFolder中的http://www.thismydomain123.com需要用户名和密码......”):

<fb:like 
href="http://www.parisgallery.com/mySecureFolder/IlikeThisPage.php?id=123" 
layout="standard" 
show_faces="false" 
width="450" 
action="like" 
colorscheme="light" />  

那么,有没有办法对此进行身份验证或任何其他更好的解决方案?

非常感谢,
Steilflug

1 个答案:

答案 0 :(得分:6)

简而言之,没有一种解决方案既可行又安全。当用户点击页面上的“赞”按钮时,Facebook会从自己的服务器上ping您的页面,以便在新闻源上显示图片和文字(请参阅Why does Facebook appear in my server logs?)。诀窍是让Facebook进入,但阻止所有其他未经过身份验证的流量。

Facebook使用用户代理facebookexternalhit/1.0 (+http://www.facebook.com/externalhit_uatext.php)进行ping操作。如果您不太关心安全性,则可以允许使用该用户代理字符串访问任何代理的页面。然而,重要的是要注意,这是完全不安全的,因为任何代理都可以自己更改其用户代理字符串。 Facebook也不保证他们的用户代理字符串不会改变,因此这种方法可能随时停止工作。

另一种选择是简单地允许Facebook IP地址上的任何人无需身份验证即可访问。这可以起作用,假设Facebook对其所依据的IP保持一致,但同样在这方面也无法保证。如果您只希望某些Facebook功能和/或员工能够在未经验证的情况下查看您的内容,或者Facebook发布其对这些IP块的所有权,那么这也可能是不安全的。

我认为你真正的问题是你试图让内容同时受到保护和共享,这是一种悖论。解决此问题的唯一真正解决方案是允许任何人阅读您的内容。