$ _SESSION变量由PHP配置控制?

时间:2009-09-07 23:15:49

标签: php session variables

我经常看到人们将$ _SESSION变量设置为

$_SESSION['example']=$_REQUEST['something'];
$example=$_SESSION['example'];

这是多余的吗?

我目前正在开发新服务器

$_SESSION['example']=$_REQUEST['something'];

让我可以访问$ example而无需任何额外的代码

这是正常的还是php配置让我的生活更轻松但可能更危险?

3 个答案:

答案 0 :(得分:5)

这听起来像是一个名为register_globals的php.ini指令,用于您正在使用的服务器。这被认为是不好的做法,甚至在最新版本的php中已被弃用和删除。查看这部分php文档以获取更多详细信息。

http://www.php.net/manual/en/security.globals.php

编辑 - 因为它与您的评论有关。

您永远不应该信任您的用户提供的输入,并且应该通过删除或中和可能用于跨站点脚本,注入攻击或只是垃圾数据进入您的会话,cookie或数据库的字符来清理它。

请查看以下内容以加快速度。

http://www.codeassembly.com/How-to-sanitize-your-php-input/

http://www.phpbuilder.com/columns/sanitize_inc_php.txt

http://www.devshed.com/c/a/PHP/Sanitizing-Strings-with-Filters-in-PHP-5/

答案 1 :(得分:1)

第一个代码和第二个代码没有区别。似乎有一种将全局变量放入局部变量的特性,使它们安全。但事实并非如此。

您应该对待来自用户空间的任何内容。 (POST,GET,REQUEST,COOKIE)就好像它被感染了一样。

答案 2 :(得分:1)

仅当“register_globals”设置为“on”时才会发生,这是不推荐的!