2010-05-25 119 views
2

下载我听说过使用curl通过下面的代码网站的外部访问保护我的网站内容:从通过卷曲

$curl_handle=curl_init(); 
curl_setopt($curl_handle,CURLOPT_URL,'http://example.com'); 
$buffer=curl_exec($curl_handle); 
curl_close($curl_handle); 

我要保护我的网站从这个外部访问。我正在使用PHP。我如何保护我的网站?

回答

3

如果你的意思是“我该如何保护自己的网站免受除浏览器之外的其他程序被访问”,得到的回答几乎是:“你不能。”浏览器只是一个发送HTTP请求的程序。你可以玩尝试拒绝看起来不像浏览器的HTTP请求的游戏,但对于一个任意程序(使用curl或者Perl/Python/Ruby库)来模仿头文件是非常容易的“真实”的浏览器发送。

4

这不会比任何人通过浏览器访问您的网站更危险;实际上,就你的问题而言,这就是curl:web浏览器等等。

如果您有安全漏洞,它们将被破坏。如果不是,他们不会。但是,curl不会放大或减少任何漏洞;它仅仅是PHP脚本访问另一个网站的一种方式(通常通过HTTP)。

如果你想防止内容被下载,你可以阻止传入的HTTP请求,但这违背了一个网站的目的,因为Web浏览器做出相同的请求(也可下载内容)。

1

如果你希望你的用户能够看到它,你不能。

你可以建立一些制度,让除非内容另一种相关片最近由同一用户的要求,但即使这样也不会阻止别人谁真的想要得到它,它不会服务于一些内容.. 。

2

我同意歪歪,但是,如果你真的想“保护”自己免受基本无浏览器访问,考虑加密你的内容,当网站被访问时使用,也就是说,JavaScript的解密它。任何了解JavaScript的浏览器(并启用它)都可以正确显示内容。但即使加密内容也可以轻松解决。 2)搜索引擎可能会错误地为您的网站编制索引(因为它们使用类似cURL的调用),3)禁用JavaScript的用户无法访问您的内容。

总的来说,我认为这不值得。

1

你可以做的另一件事情是保护您的网站有Captcha。这将阻止通过curl访问,但会允许您的用户访问。

要知道,这样做将停止搜索引擎访问您的网站。