好吧,我一直在网上寻找,但我似乎找不到任何解决我的问题的方法。如果过去有人问过这个问题,我深表歉意。
我相信有一个非常简单的答案:不久前我为一个客户建了一个网站。这个网站有一个管理系统,其中一些页面使用名为‘$_SESSION’的级别变量进行锁定,该变量基本上检查用户是否为管理员。此外,一些页面使用通常的登录会话变量进行锁定,以确保只有登录的用户才能访问这些页面。
现在的问题是,在我的两个页面上,php脚本似乎完全是自己运行的。第一个页面只是将所有激活电子邮件重新发送到数据库中的每个用户的页面。只有以管理员身份登录才能访问此页面。第二个页面只能通过PayPal访问。PayPal脚本具有后备支持,可检查是否有PayPal post变量。
有人知道为什么这些脚本会自己运行吗?当随机的电子邮件不断地发送给客户或管理员时,它会变得令人烦恼。我可能在哪里做错了什么。我想可能只是Google crawler激活了脚本,但难道爬虫不需要登录才能访问脚本吗?
发布于 2012-08-07 06:35:00
这可能是很多事情。
一种方法是搜索引擎正在执行你的脚本。
几年前,我受聘调查是什么原因导致他们自制的CMS的所有页面被删除。
查看他们的访问日志发现,有两个搜索引擎试图在管理前端对内容进行索引。包括所有的删除页面链接。
发生这种情况的原因是两件事的结合。
第一个是来自两个搜索引擎的管理员浏览器插件。文档证明,客户端访问的页面是从他们的插件发送到搜索引擎的。
其次,当搜索引擎试图索引一个受会话保护的页面时,他们的内容管理系统的原始开发人员忘记在header('Location: ...');
部分后面放置一个exit;
,这意味着页面上的其余代码仍然会被执行。
解决方案
我通过将exit;
添加到代码中修复了这个问题:
If( ! isset($_SESSION['level']) )
{
header('Location: login.php');
exit; // stops further execution of code
}
我希望这能有所帮助。
发布于 2012-08-07 05:43:09
检查服务器的访问日志,查看调用这些页面的时间和内容(如果它们正在被调用)。
如果某些东西正在访问那些不应该访问的页面(爬虫、人等),那么您就有了安全问题。
我非常怀疑这些脚本是不是“自称”。
发布于 2012-08-07 05:56:52
要了解调用它们的原因,请在检查会话变量是否已设置,但未设置会话变量后,添加
file_put_contents('./log/log.txt', print_r($_SERVER));
自己创建一个目录"log“和一个写标签文件"log.txt”,源代码应该会出现在那里。
另一个有用的函数是debug_backtrace()。使用这个有点棘手,但是:
if ($handle = @fopen('./log/log.txt', 'a')) {
for ($i=1; $i<count($aBack); $i++) {
if (isset($aBack[$i]['file'])) {
fwrite($handle, $aBack[$i]['file'] . '/' . $aBack[$i]['line'] . "\n\r";
} else {
fwrite($handle, 'Anonymous function' . "\n\r";
}
}
fclose($handle);
}
应该会给你一个使用了什么誓言的日志。(逐字输入的代码-很抱歉输入错误,但您应该能够从那里找到答案)
请注意,大多数客户端信息(IP、referer等)都是可伪造的,但调用URI不是。它将为您提供大量关于调用它们的信息。
https://stackoverflow.com/questions/11839857
复制相似问题