2013-01-10 55 views
1

例如,我们有这个网址: https://www.domain.com/pdf.php?url=http://www.domain.com/report.php?id=341是否有可能检测到PHP文件请求

我想知道是否有可能使用PHP在report.phppdf.php试图打开进入report.php?id=341莫名其妙检测。

如果可能的话我以后会限制对report.php可以被称为只有pdf.php,invoice.php等

BASICALY我想确保report.php由服务器,而不是要求人类。

是否有可能存在安全隐患?

我希望我的问题是有意义的。提前致谢。

+0

是pdf.php和report.pdf在同一个域上? – 2013-01-10 19:22:00

+0

了解'$ _SERVER ['']'变量,您将知道如何实现这个 – samayo

+0

@Dagon是的。 – ProDraz

回答

1

您可以尝试使用下面显示$ _ SERVER数组的全部内容。它会告诉你所需的变量,你正在寻找。

print_r($_SERVER); 
0

将逻辑添加到pdf.phpinvoice.php等等更好。 您应该在那里处理GET/POST参数。 如果您使用纯PHP创建一些函数,并将其放置在所有其他可通过web访问的php文件的开头。例如。

if(!check_get_from($_GET)) die; 

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

+0

我知道,但我无能为力。我会尽量提供更多细节,因为我的情况很复杂:P – ProDraz

+0

无法使用?他们都在同一个域中你提到:) – Pave

+0

是的,但pdf.php是产生例如PDF文件,它是用于各种任务,不只是这一个:■ – ProDraz

1

你可以看到用户来自使用

$_SERVER['HTTP_REFERER'] 

例如

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

这不但是安全的,因为PHP手册指出:这是由用户代理设置。并非所有的用户代理都会设置它,有些提供了将HTTP_REFERER修改为功能的功能。总之,它不能真正被信任。

+0

尝试过,但不知何故我得到空白$ _SERVER ['HTTP_REFERER'] – ProDraz

相关问题