ajax - 阻止对服务器上我的系统 Web 应用程序文件的访问
问题描述
为了更清楚,我想了解这个简单的问题:更改文件的扩展名会改变其原始性质吗?
我的意思是如果我将文本文件(.js、.php、.html、.css)更改为 .exe 文件 - 这是否意味着爬虫/机器人无法读取它的内容?
原帖:
摘要:我试图阻止对服务器上我的系统 Web 应用程序文件的访问。
我想到了几种方法:
- 对 htaccess 文件施加限制。
- 植入一个脚本(在带有/不带有 Ajax 的 JavaScript 中),以便将内容转发/显示给不包含“bot”、“google”等字符串的用户代理。
- 用 EXE 等外星扩展名包装我的系统文件,然后使用服务器以正确的扩展名(js、css、php 等)复制它的内容以执行它,并在会话结束后 - 删除这些副本服务器。
我知道如何做这 3 种方法,但我想知道:
一个。哪种做法最好?
湾。这是否可行(我的意思是上述其中一项是否会隐藏所有类型的机器人/爬虫的系统文件),或者还有什么需要关注的吗?
在我看来,第三个选项是最好的,但我想知道:机器人是否能够识别文件是否包含文本,即使它具有非文本扩展名?
希望这不是超出范围的问题,但如果是这样,我会关心一些好的/可靠的外部链接(或者可能是其他 SO 论坛)以获得一些指导,因为 SO 上的相关问题已经有几年历史了......
解决方案
使用 robots.txt
要禁止机器人,您可以使用服务器上的 robots.txt 文件。大多数合法且友好的爬虫和机器人首先阅读 robots.txt 文件并开始在网站上抓取允许的网址,不鼓励忽略的网址。
元标记还具有告诉机器人停止其操作的属性。
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
例子:
User-agent: *
Disallow: /cgi-bin/
Disallow: /tmp/
Disallow: /~joe/
使用 .htaccess
其次,您可以使用 htaccess 以这样一种方式重写您的实际文件,这样就不是没有人可以轻松地判断该请求将发送到所请求的确切文件,或者如果您愿意,您可以永久阻止。
像这样的东西
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (crawler|bot) [NC]
RewriteRule (.*) - [F,L]
</IfModule>
使用验证码
正如其他用户所建议的那样,验证码也是过滤机器人的好方法。
参考:
推荐阅读
- python-3.x - 如何从每个索引多个项目的列表中创建一个每个索引一个项目的列表
- c# - Powershell 气球通知在显示前消失
- ssl - 在站点绑定下拉列表中找不到 Godday SSL 证书 - IIS 10
- python - R 或 Python 中是否有一个函数可以单独计算多选 Tableau 筛选器的份额百分比?
- shopify - 如何使用 OR 条件在 shopify 中按标签过滤我们的产品?
- mongodb - 两个相同的 MongoDB 查询一个结果一个空响应
- assembly - 8051微控制器的反汇编指令集
- php - Laravel - 从父模型扩展模型 $guarded
- javascript - 插入表头 JS
- php - 选择查询 ro 在 php 中获取 dmY 日期值?