php.ini找不到register_globals,配置指令如何设置?

原创 行云管家  2017-04-14 11:11  阅读 1,313 次 评论 0 条
行云管家,新手有礼
摘要:

修改php.ini配置指令是服务器、云主机配置Windows Server 2012 IIS环境的重要步骤,register_globals是php.ini里的一个配置,这个配置影响到php 如何接收传递过来的参数比如:GET,POST,Cookie。PHP 4.2.0版开始,配置文件中 register_globals 的默认值从 on 改为 off 了,PHP5.4删除了php.ini文件中的 register_globals安全函数。

修改php.ini配置指令是服务器、云主机配置Windows Server 2012 IIS环境的重要步骤,register_globals是php.ini里的一个配置,这个配置影响到php 如何接收传递过来的参数比如:GET,POST,Cookie。PHP 4.2.0版开始,配置文件中 register_globals 的默认值从 on 改为 off 了,PHP5.4删除了php.ini文件中的 register_globals安全函数。

register_globals可设置为ON和Off

1:当register_globals=Off

接收数据的程序应该用根据表单form传值的方法来决定。GET:用$_GET['name']、$HTTP_GET_VARS['name']来接收值;POST:当form用POST提交数据$_POST['name']、$HTTP_POST_VARS['name']来接收值;

2:当register_globals=On

接收数据的程序可以直接使用$user_name和$user_pass的这种类似访问变量的方式得到值。

注:当的method属性为post的时候应该用$_POST['user_name']和$_POST['user_pass']

register_globals的作用就是注册为全局变量,所以当register_globals=On的时候,传递过来的值会被直接的注册为全局变量直接使用,而register_globals=Off的时候,需要到特定的数组里去得到它。

所以,当你碰到无法得到值的时候应该首先检查一下你的register_globals的设置和你获取值的方法是否匹配(查看可以用phpinfo()函数或者直接查看php.ini文件)。

推荐把此项关闭,设置为Off。

那我们为什么要使用Off呢?

1:php以后的新版本默认都用Off,虽然你可以设置它为On,但是当你无法控制服务器的时候,你的代码的兼容性就成为一个大问题,所以,你最好从现在就开始用Off的风格开始编程

2:此项要是打开,会存在很多安全隐患。例如在验证用户时,如果你的代码写的不够严谨,会导致攻击都构造特殊值来饶过验证。

行云管家是国内领先的云主机管理平台,可以实现云主机等云资源的跨云平台统一管理,同时还为中小企业及站长用户提供云代维服务,远程解决您在云主机管理、云资源应用时出现的各类问题,强大的技术支持团队为您提供专业的服务。

本文地址:https://www.cloudbility.com/club/2549.html
关注我们:请关注一下我们的微信公众号:扫描二维码,公众号:cloudbility
版权声明:本文为原创文章,版权归 行云管家 所有,欢迎分享本文,转载请保留出处!

发表评论


表情