【发布时间】:2014-06-30 23:12:41
【问题描述】:
通过包含传递 get 变量有哪些安全隐患?
例子:
index.php:
$lastname = $pulleddatabasevalue;
include "../includes/header?lastname=$lastname";
header.php:
echo $_GET["lastname"];
由于变量是动态的,我一直在努力让 include() 或会话工作以在 php 包含中为变量 $lastname 分配数据库值。但是,这里的 $_GET 运行良好。它不会显示在浏览器地址栏上,因此不能在那里以敌对方式进行操作。是否有其他方式可以让有恶意的人使用此代码?假设包含目录被锁定,我只是指 index.php。
【问题讨论】:
-
如果您在包含之前定义变量,您可以像使用任何其他变量一样使用它。
-
没有安全隐患,因为它不是那样工作的
-
这个问题似乎是题外话,因为它是基于错误的假设,即上述代码有效。因此无法真正回答。
-
我可以证明代码有效。实际代码中的 URL 是不同的。我显然在 header.php 和 index.php 中有打开和关闭 PHP 标记。但它确实工作得很好。
-
在阅读别人的cmets,好像应该不行。我真的很好奇为什么它对我有用?它使用 GET 获取 $lastname 的值。奇怪。
标签: php