4

我编写了一个脚本,用于在特定时间自动发布新页面。它只会显示一个倒数计时器,然后当它达到 0 时,它会将特定文件重命名为 index.php 并将当前 index.php 重命名为 index-modified.php

这没有问题。但是在某个时候,我的客户告诉我的网站没有来。我发现 index.php 被重命名为 index-modified.php 并且所有其他页面都可以正常工作。如果没有 index.php,我的网站显示 404 错误。

然后我分析了访问日志,发现alexa爬虫访问了那个发布脚本,这导致了问题

我想知道alexa爬虫是如何找到我的内部脚本文件并爬取的??我的所有内部管理用途文件都会发生这种情况吗?我的任何页面都没有该脚本的任何链接。

我想知道它如何找到我服务器中存在的文件..????

4

4 回答 4

11

我想知道它如何找到我服务器中存在的文件?

可能是因为访问这些文件的人使用了 Alexa 工具栏

它之所以能做到这一点,是因为脚本有两个问题。

  1. 它不受身份验证/授权层的保护。

  2. 响应 GET 请求,它在服务器上进行了重大更改。HTTP 规范为“安全”请求提供 GET,为执行某些操作的请求提供 POST。

于 2010-02-26T09:13:50.013 回答
1

index.php是目录中的默认 PHP 脚本名称。当您导航到目录而不提供文件名时,它将被执行。

要解决此问题,请使用 POST 调用修改。如果你不能这样做,那么至少给脚本起一个不太可能被猜到的名字。

于 2010-02-26T09:04:28.130 回答
1

您应该使用robots.txt和禁止蜘蛛爬行:

User-agent: *
Disallow: index.php
于 2010-02-26T09:06:07.003 回答
1

如果您的脚本位于 htdocs(对于 apache)文件夹中,爬虫程序很可能会找到它并尝试对其进行爬取。你可以做的是:

1) 在 robots.txt 中添加规则,在这里您可以了解更多信息: http ://www.javascriptkit.com/howto/robots.shtml

这将建议爬虫不要执行脚本,但不会禁止它们

2)将脚本放在子文件夹中并用密码保护它 - 最好在你的情况下,你真的不想要随机访问者或蜘蛛来禁用你的网站。更多关于如何轻松做到这一点的信息是 .htaccess :

http://www.javascriptkit.com/howto/htaccess3.shtml

祝你好运,马林

于 2010-02-26T09:08:57.143 回答