Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 隐藏URL以隐藏敏感文件并防止僵尸程序/刮取程序_Php_Urlencode_Url Encoding - Fatal编程技术网

Php 隐藏URL以隐藏敏感文件并防止僵尸程序/刮取程序

Php 隐藏URL以隐藏敏感文件并防止僵尸程序/刮取程序,php,urlencode,url-encoding,Php,Urlencode,Url Encoding,我不是说任何.htaccess重写规则 我正在开发一个web应用程序,我想从bot/scraper中隐藏URL,它应该类似于 我们需要使URL像Trip Advisor使用的方法一样模糊。我尝试了很多解决方案,包括上面提到的问题中的一个,但它对我不起作用 例如,我们有一个类似于example.com/file.php?u=jh843的URL,并希望以某种方式将其隐藏起来,使其类似于lqmwjqimnyevtijpejcqqqqnqxgecqqoqoqoqoqoqnq或example.com/ev

我不是说任何
.htaccess
重写规则

我正在开发一个web应用程序,我想从bot/scraper中隐藏URL,它应该类似于

我们需要使URL像Trip Advisor使用的方法一样模糊。我尝试了很多解决方案,包括上面提到的问题中的一个,但它对我不起作用


例如,我们有一个类似于
example.com/file.php?u=jh843
的URL,并希望以某种方式将其隐藏起来,使其类似于
lqmwjqimnyevtijpejcqqqqnqxgecqqoqoqoqoqoqnq
example.com/evtijpejciqoqoqoqoqnq
,无论哪种方式,它都是好的。

Tripadvisor解决方案看起来像是点击,javscript对字符串进行解码,然后加载url(我看不到他们在网站中使用它)

但是现代机器人可以执行javascript

一种解决方案是将随机字符串分配给服务器中的url(比如可以在服务器上再次解码的简单$OfDiscated=base64_encode($url.$salt)),将其存储在会话或数据库中(这样就可以将其仅分配给特定用户或任何访问控制,如下载时间、ip块…)

但是机器人可以使用会话,所以它仍然是一个链接。您可以设置的唯一控制是,这是一次性下载使用链接还是受限的用户会话(仅针对已登录或特定用户)


并阻止直接访问文件url。

为您的数据生成随机的不可用ID并使用它。但是,URL仍然是URL。您可能无法仅增加一个数字以转到下一页,但您仍然可以访问该页。您需要在模糊处理和可访问性之间取得平衡。你可以使用JavaScript让爬虫很难读取URL,但你也可能让不使用传统浏览器的人很难浏览你的网站。也许最好检查一下你网站上的点击率——如果某个读者在某段时间内点击过多或过多,在接下来的一个小时内为该IP提供404服务。另外,不要忘记机器人排除协议。感谢您的帮助,主要目的是隐藏敏感文件,如file.php i,我们的示例和防止机器人只是次要目的。对于“合法”和友好的机器人,请使用链接上的rel=“no follow”属性和带有不允许url的Robots.txt文件。对于其他人…可能是不寻常的频率-时间访问…检查这里的示例我们如何让base64编码的url工作,并在源代码中显示为您必须使用的EndCodeDY。htAccess捕获url以编写脚本并对其进行处理,或将编码数据发送到特定的url(这将产生原始问题)。最后一个选项是使用javscript在客户端解码:我很困惑,你能根据我发送的pastebin示例发送一个工作代码吗?