分享下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加速的eAccelerator dll支持文件打包下载
Sep 30 PHP
php zend解密软件绿色版测试可用
Apr 14 PHP
php auth_http类库进行身份效验
Mar 19 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
Aug 07 PHP
PHP5 操作MySQL数据库基础代码
Sep 29 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
Jan 11 PHP
检查php文件中是否含有bom的函数
May 31 PHP
PHP Switch 语句之学习笔记
Sep 21 PHP
php获取参数的几种方法总结
Feb 18 PHP
PHP进阶学习之反射基本概念与用法分析
Jun 18 PHP
php去除数组中为0的元素的实例分析
Nov 17 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中把对象数组转换成普通数组的方法
2015/07/10 PHP
php实现页面纯静态的实例代码
2017/06/21 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
thinkPHP5框架自定义验证器实现方法分析
2018/06/11 PHP
PHP设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
2019/06/13 PHP
JavaScript字符串String和Array操作的有趣方法
2012/12/18 Javascript
jQuery获取checkboxlist的value值的方法
2015/09/27 Javascript
ES6新特性六:promise对象实例详解
2017/04/21 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
JS实现预加载视频音频/视频获取截图(返回canvas截图)
2017/10/09 Javascript
详解webpack运行Babel教程
2018/06/13 Javascript
详解多页应用 Webpack4 配置优化与踩坑记录
2018/10/16 Javascript
关于微信小程序登录的那些事
2019/01/08 Javascript
vue 移动端记录页面浏览位置的方法
2020/03/11 Javascript
js实现时间日期校验
2020/05/26 Javascript
基于vuex实现购物车功能
2021/01/10 Vue.js
Python简单调用MySQL存储过程并获得返回值的方法
2015/07/20 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
Python中你应该知道的一些内置函数
2017/03/31 Python
一份python入门应该看的学习资料
2018/04/11 Python
Python 读写文件的操作代码
2018/09/20 Python
详解PyTorch手写数字识别(MNIST数据集)
2019/08/16 Python
tensorflow安装成功import tensorflow 出现问题
2020/04/16 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
配置H5的滚动条样式的示例代码
2018/03/09 HTML / CSS
华润集团网上药店:健一网
2016/09/19 全球购物
怎么写有吸引力的自荐信
2013/11/17 职场文书
语文教学感言
2014/02/06 职场文书
雷锋式好少年事迹材料
2014/08/17 职场文书
项目战略合作意向书
2015/05/08 职场文书
个人合作协议范本
2015/08/06 职场文书
2019年圣诞节祝福语集锦
2019/12/25 职场文书
Java实现扫雷游戏详细代码讲解
2022/05/25 Java/Android