分享下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 常用函数库和一些实用小技巧
Jan 01 PHP
php源码加密 仿微盾PHP加密专家(PHPCodeLock)
May 06 PHP
php简单浏览目录内容的实现代码
Jun 07 PHP
php堆排序(heapsort)练习
Nov 13 PHP
php配合jquery实现增删操作具体实例
Dec 12 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
mantis安装、配置和使用中的问题小结
Jul 14 PHP
php使用simplexml_load_file加载XML文件并显示XML的方法
Mar 19 PHP
PHP微信开发之二维码生成类
Jun 26 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
YII框架常用技巧总结
Apr 27 PHP
解决Laravel5.2 Auth认证退出失效的问题
Oct 14 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
PHP4之真OO
2006/10/09 PHP
ThinkPHP 404页面的设置方法
2015/01/14 PHP
关于scrollLeft,scrollTop的浏览器兼容性测试
2013/03/19 Javascript
javascript获取网页中指定节点的父节点、子节点的方法小结
2013/04/24 Javascript
通过javascript获取iframe里的值示例代码
2013/06/24 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
jquery.validate.js插件使用经验记录
2014/07/02 Javascript
javascript多物体运动实现方法分析
2016/01/08 Javascript
JavaScript中循环遍历Array与Map的方法小结
2016/03/12 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
xcode中获取js文件的路径方法(推荐)
2016/11/05 Javascript
详解RequireJS按需加载样式文件
2017/04/12 Javascript
Angular开发实践之服务端渲染
2018/03/29 Javascript
JS中的防抖与节流及作用详解
2019/04/01 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
wxPython框架类和面板类的使用实例
2014/09/28 Python
Python类的多重继承问题深入分析
2014/11/09 Python
Python日志模块logging简介
2015/04/13 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
Python socket网络编程TCP/IP服务器与客户端通信
2017/01/05 Python
python数据类型判断type与isinstance的区别实例解析
2017/10/31 Python
Python3 操作符重载方法示例
2017/11/23 Python
python如何把嵌套列表转变成普通列表
2018/03/20 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
python使用turtle库绘制奥运五环
2020/02/24 Python
零基础学python应该从哪里入手
2020/08/11 Python
html5 css3 动态气泡按钮实例演示
2012/12/02 HTML / CSS
英国天然抗衰老护肤品品牌:Nakin Skin Care
2019/04/16 全球购物
汽车运用工程毕业生自荐信
2013/10/29 职场文书
模特大赛策划方案
2014/05/28 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
Python学习之迭代器详解
2022/04/01 Python
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技