繁体   English   中英

防止来自我网站的cURL请求

[英]Prevent cURL requests from my website

我有一个包含大量DB产品和价格的网站。
我一直在为价格而努力。

我想用<noscript>标签来阻止它,但是我能做的就是隐藏内容,机器人仍然可以抓住我的内容。

有没有办法运行JS测试,以查看js是否被禁用(检测机器人)并重定向这些请求,可能在黑名单中。

这样做会阻止谷歌进入我的网站吗?

由于CURL只是一个html请求,因此您的服务器无法区分,除非您限制某些网址的访问权限或检查引荐网址,并为本地未提及的任何内容实施过滤器。 可以在此处找到如何构建支票的示例:

检查推荐人

您可以通过检查User Agent来阻止php中的非托管cURL请求。 据我所知,搜索引擎抓取工具的用户代理字符串都没有卷曲,因此不应该阻止它们。

if(stripos($_SERVER['HTTP_USER_AGENT'],'curl') !== false) {
    http_response_code(403); //FORBIDDEN
    exit;
}

请注意,更改cURL请求的User Agent字符串非常简单,因此有人可以轻松绕过此问题。

你需要创建一个阻止列表并阻止ips访问内容,所有标题包括referrer和user agent都可以通过简单的代码很容易地设置为curl

$agent = 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)';
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_URL, 'http://www.yoursite.com?data=anydata');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_REFERER, 'http://www.yoursite.com');
$html = curl_exec($ch);

以上将使curl请求看起来像使用firefox的浏览器的正常连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM