分享下PHP register_globals 值为on与off的理解


Posted in PHP onSeptember 26, 2013

register_globals的值可以设置为:On或者Off,我们举一段代码来分别描述它们的不同。

代码:

<form name="frmTest" id="frmTest" action="URL">
<input type="text" name="user_name" id="user_name">
<input type="password" name="user_pass" id="user_pass">
<input type="submit" value="login">
</form>

当register_globals=Off的时候,下一个程序接收的时候应该用$_GET['user_name']和$_GET['user_pass']来接受传递过来的值。(注:当<form>的method属性为post的时候应该用$_POST['user_name']和$_POST['user_pass'])

当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值。

顾名思义,register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。所以,碰到上边那些无法得到值的问题的朋友应该首先检查一下你的register_globals的设置和你获取值的方法是否匹配。(查看可以用phpinfo()函数或者直接查看php.ini)

下面来看看这里有什么错误?

看看下面的这段PHP脚本,它用来在输入的用户名及口令正确时授权访问一个Web页面:

<?php
// 检查用户名及口令
if ($username == 'kevin' and $password == 'secret')
$authorized = true;
?>
<?php if (!$authorized): ?>
<!-- 未授权的用户将在这里给予提示 -->
<p>Please enter your username and password:</p>
<form action="<?=$PHP_SELF?>" method="POST">
<p>Username: <input type="text" name="username" /><br />
Password: <input type="password" name="password" /><br />
<input type="submit" /></p>
</form>
<?php else: ?>
<!-- 有安全要求的HTML内容 -->
<?php endif; ?>

上面的代码中存在的问题是你可以很容易地获得访问的权力,而不需要提供正确的用户名和口令。只在要你的浏览器的地址栏的最后添加?authorized=1。因为PHP会自动地为每一个提交的值创建一个变量 -- 不论是来自动一个提交的表单、URL查询字符串还是一个cookie -- 这会将$authorized设置为1,这样一个未授权的用户也可以突破安全限制。

PHP 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
php 中英文语言转换类代码
Aug 11 PHP
设置php页面编码的两种方法示例介绍
Mar 03 PHP
destoon二次开发常用数据库操作
Jun 21 PHP
PHP大转盘中奖概率算法实例
Oct 21 PHP
9个经典的PHP代码片段分享
Dec 18 PHP
php判断一个数组是否为有序的方法
Mar 27 PHP
PHP简单实现无限级分类的方法
May 13 PHP
PHP使用imagick扩展实现合并图像的方法
Apr 25 PHP
PHP定义字符串的四种方式详解
Feb 06 PHP
php的扩展写法总结
May 14 PHP
Thinkphp 框架扩展之应用模式实现方法分析
Apr 27 PHP
从PHP $_SERVER相关参数判断是否支持Rewrite模块
Sep 26 #PHP
ThinkPHP利用PHPMailer实现邮件发送实现代码
Sep 26 #PHP
PHP实现今天是星期几的几种写法
Sep 26 #PHP
一个PHP的远程图片抓取函数分享
Sep 25 #PHP
使用php判断服务器是否支持Gzip压缩功能
Sep 24 #PHP
使用PHP下载CSS文件中的图片的代码
Sep 24 #PHP
php实现的获取网站备案信息查询代码(360)
Sep 23 #PHP
You might like
PHP获取网卡地址的代码
2008/04/09 PHP
Apache 配置详解(最好的APACHE配置教程)
2010/07/04 PHP
PHP定时执行计划任务的多种方法小结
2011/12/19 PHP
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
PHP实现的mysql主从数据库状态检测功能示例
2017/07/20 PHP
jQuery下通过replace字符串替换实现大小图片切换
2012/05/22 Javascript
JQuery中对Select的option项的添加、删除、取值
2013/08/25 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
JQuery 实现在同一页面锚点链接之间的平滑滚动
2014/10/29 Javascript
JavaScript常用验证函数实例汇总
2014/11/25 Javascript
介绍JavaScript的一个微型模版
2015/06/24 Javascript
又一款js时钟!transform实现时钟效果
2016/08/15 Javascript
js实现PC端根据IP定位当前城市地理位置
2017/02/22 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
JavaScript实现滑动导航栏效果
2017/08/30 Javascript
Mac下通过brew安装指定版本的nodejs教程
2018/05/17 NodeJs
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
JS实现滑动插件
2020/01/15 Javascript
Python XML RPC服务器端和客户端实例
2014/11/22 Python
python numpy 部分排序 寻找最大的前几个数的方法
2018/06/27 Python
python 剪切移动文件的实现代码
2018/08/02 Python
python3人脸识别的两种方法
2019/04/25 Python
python实现屏保程序(适用于背单词)
2019/07/30 Python
python 正则表达式贪婪模式与非贪婪模式原理、用法实例分析
2019/10/14 Python
Pytorch环境搭建与基本语法
2020/06/03 Python
荷兰在线啤酒店:Beerwulf
2019/08/26 全球购物
施工安全标语
2014/06/07 职场文书
美术学专业求职信
2014/07/23 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
2014年医院科室工作总结
2014/12/20 职场文书
员工表扬信怎么写
2015/05/05 职场文书
教务处干事工作总结
2015/08/14 职场文书
合作意向书范本
2019/04/17 职场文书
25句企业管理语录:助你迅速打开思路,句句经典!
2020/01/14 职场文书