首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >防止机器人运行PHP脚本

防止机器人运行PHP脚本
EN

Stack Overflow用户
提问于 2014-03-04 15:32:09
回答 4查看 1.9K关注 0票数 0

我们有一个目录是开放的网站,我们放置实用程序脚本,其中一些用于提交电子邮件,另一些用于调用我们的web服务的通用功能。

在我的PHP错误日志中,我经常收到通知和警告,脚本中使用的数据存在问题,比如“未定义的索引”或“试图获取非对象的属性”。

这些脚本中有几个我知道已经不再被使用了,但是在日志文件中仍然有来自试图运行这些脚本的-某人的条目。

我能做些什么来防止这种情况在我的合法脚本中发生呢?它们需要利用web,因为它们是通过ajax从多个页面调用的。

更新-

我发现,它们之所以能够由机器人运行,是因为目录没有目录列表的保护;这意味着机器人在没有真正知道它们做了什么的情况下就读取了清单并从那里运行。

我在我的.htaccess中添加了防止目录列表的选项,我将监视一些事情,看看它是否有用。

在另一个提示中,所有建议通过IP或密码阻止的人保护他们.在检查一些日志文件后,检查IP将无法工作,因为脚本是从服务器、PHP脚本中调用的,并且是通过客户端的ajax调用的。此外,要使用密码进行保护,意味着我必须修改调用脚本的每个地方来传递该密码。

希望我的mods能帮上很大的忙,但它可能不会阻止那些已经知道脚本在那里的机器人。

EN

Stack Overflow用户

发布于 2014-03-04 15:40:41

我通过cron作业运行脚本,并通过GET通过密码对它们进行保护,如下所示:

代码语言:javascript
运行
复制
$password = $_GET['password'];

if($password == "somethingcool") {

    //the rest of your code here.

}

然后我像这样调用我的脚本:script.php?password=somethingcool。如果密码不正确,则不会执行脚本。

不过,这也有不好的一面。如果它是从公共页面调用的,请确保使用javascript变量设置密码,否则bot将简单地遵循源代码中的链接。

确保你过滤$_GET‘密码’,这个例子是不安全的。

票数 0
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22176185

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档