分享下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 相关文章推荐
PHP网站提速三大“软”招
Oct 09 PHP
攻克CakePHP系列一 连接MySQL数据库
Oct 22 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
Jun 03 PHP
yii框架源码分析之创建controller代码
Jun 28 PHP
Discuz批量替换帖子内容的方法(使用SQL更新数据库)
Jun 23 PHP
php实现压缩多个CSS与JS文件的方法
Nov 11 PHP
Codeigniter的一些优秀特性总结
Jan 21 PHP
PHP连接数据库实现注册页面的增删改查操作
Mar 27 PHP
详解PHP的Yii框架中的Controller控制器
Mar 29 PHP
CI框架使用composer安装的依赖包步骤与方法分析
Nov 21 PHP
php生成图片缩略图功能示例
Feb 22 PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
新手菜鸟必读:session与cookie的区别
2013/08/22 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
学习php设计模式 php实现桥梁模式(bridge)
2015/12/07 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
JQuery设置文本框和密码框得到焦点时的样式
2013/08/30 Javascript
js中精确计算加法和减法示例
2014/03/28 Javascript
extjs 如何给column 加上提示
2014/07/29 Javascript
举例讲解JavaScript substring()的使用方法
2015/11/09 Javascript
原生javascript实现图片无缝滚动效果
2016/02/12 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
2017/05/05 Javascript
基于jQuery实现的Ajax 验证用户名唯一性实例代码
2017/06/28 jQuery
JavaScript算法教程之sku(库存量单位)详解
2017/06/29 Javascript
jQuery实现表单动态加减、ajax表单提交功能
2018/06/08 jQuery
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
微信用户访问小程序的登录过程详解
2019/09/20 Javascript
Python的Django框架使用入门指引
2015/04/15 Python
python通过paramiko复制远程文件及文件目录到本地
2019/04/30 Python
python导入不同目录下的自定义模块过程解析
2019/11/18 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
python怎么调用自己的函数
2020/07/01 Python
整个世界的设计师家具在哈恩:Designathome
2019/03/25 全球购物
现代绅士日常奢侈品:Todd Snyder
2019/12/13 全球购物
美国在线艺术商店:HandmadePiece
2020/11/06 全球购物
人力资源经理的岗位职责范本
2014/02/28 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
领导班子整改方案和个人整改措施
2014/10/25 职场文书
党员考试作弊检讨书1000字
2015/02/16 职场文书
南极大冒险观后感
2015/06/05 职场文书
小鞋子观后感
2015/06/05 职场文书
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
AngularJS实现多级下拉框
2022/03/25 Javascript
MySQL三种方式实现递归查询
2022/04/18 MySQL