分享下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
php.ini中文版
Oct 09 PHP
桌面中心(二)数据库写入
Oct 09 PHP
基于mysql的bbs设计(三)
Oct 09 PHP
收集的PHP中与数组相关的函数
Mar 22 PHP
php获取mysql版本的几种方法小结
Mar 25 PHP
php函数的常用方法及注意之处小结
Jul 10 PHP
探讨捕获php错误信息方法的详解
Jun 09 PHP
基于PHP导出Excel的小经验 完美解决乱码问题
Jun 10 PHP
php求两个目录的相对路径示例(php获取相对路径)
Mar 27 PHP
用PHP代替JS玩转DOM的思路及示例代码
Jun 15 PHP
ThinkPHP字符串函数及常用函数汇总
Jul 18 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实现json编码的方法
2015/07/30 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
php将字符串转换为数组实例讲解
2020/05/05 PHP
js实现数字每三位加逗号的方法
2015/02/05 Javascript
jQuery的事件委托实例分析
2015/07/15 Javascript
基于jQuery实现响应式圆形图片轮播特效
2015/11/25 Javascript
jQuery 弹出层插件(推荐)
2016/05/24 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
react-native 完整实现登录功能的示例代码
2017/09/11 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
基于twbsPagination.js分页插件使用心得(分享)
2017/10/21 Javascript
JS 实现分页打印功能
2018/05/16 Javascript
原生JS 实现的input输入时表格过滤操作示例
2019/08/03 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
python基础while循环及if判断的实例讲解
2017/08/25 Python
深入浅析Python获取对象信息的函数type()、isinstance()、dir()
2018/09/17 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python3.5常见内置方法参数用法实例详解
2019/04/29 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
python实现图像拼接
2020/03/05 Python
Python requests上传文件实现步骤
2020/09/15 Python
python 爬虫如何实现百度翻译
2020/11/16 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
酷瑞网络科技面试题
2012/03/30 面试题
大学班级干部的自我评价分享
2014/02/10 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
房屋出租协议书
2014/04/10 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
中专生自荐信
2014/06/25 职场文书
初中毕业典礼演讲稿
2014/09/09 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
2014年教师业务工作总结
2014/12/19 职场文书
培训督导岗位职责
2015/04/10 职场文书
2016党员读书思廉心得体会
2016/01/23 职场文书
创业计划书之网吧
2019/10/10 职场文书