是否可以检测PHP文件请求

时间:2013-01-10 19:19:40

标签: php

例如我们有这个网址: https://www.domain.com/pdf.php?url=http://www.domain.com/report.php?id=341

我想知道是否有可能以report.php pdf.php试图打开访问权限report.php?id=341使用PHP进行检测。

如果可能,我稍后会限制该报告。只能通过pdf.php,invoice.php等调用.php。

BASICALY我想确保server.php是服务器请求的,而不是人。

是否存在安全隐患?

我希望我的问题有道理。提前谢谢。

3 个答案:

答案 0 :(得分:1)

您可以使用

查看用户的来源
$_SERVER['HTTP_REFERER']

例如

if ( $_SERVER['HTTP_REFERER'] == "valid_url.php" ) ...

然而,这不安全,因为php手册指出:这是由用户代理设置的。并非所有用户代理都会设置此功能,有些用户可以将HTTP_REFERER修改为功能。简而言之,它无法真正被信任。

答案 1 :(得分:1)

您可以尝试使用以下内容显示$ _SERVER数组的完整内容。它会显示您正在寻找的所需变量。

print_r($_SERVER);

答案 2 :(得分:0)

将您的逻辑添加到pdf.phpinvoice.php等等要好得多。 你应该处理GET / POST参数。 如果您正在使用普通PHP制作一些功能并将其放在所有其他Web可访问的php文件的开头。例如。

if(!check_get_from($_GET)) die; 

但最佳做法是只有一个入口点(index.php)。