分享下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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
PHP获得用户使用的代理服务器ip即真实ip
Dec 31 PHP
MYSQL环境变量设置方法
Jan 15 PHP
PHP Squid中可缓存的动态网页设计
Sep 17 PHP
PHP为表单获取的URL 地址预设 http 字符串函数代码
May 26 PHP
PHP基础学习小结
Apr 17 PHP
php中一个有意思的日期逻辑处理
Mar 25 PHP
使用纯php代码实现页面伪静态的方法
Jul 25 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
Oct 08 PHP
使用php实现从身份证中提取生日
May 09 PHP
PHP中“=&gt;
Mar 01 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
Dec 30 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
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
PHP书写格式详解(必看)
2016/05/23 PHP
PHP环境搭建的详细步骤
2016/06/30 PHP
Javascript面向对象之四 继承
2011/02/08 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
解决JS中乘法的浮点错误的方法
2014/01/03 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
JavaScript 实现完美兼容多浏览器的复制功能代码
2015/04/28 Javascript
JS实现淡蓝色简洁竖向Tab点击切换效果
2015/10/06 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
ES6入门教程之let和const命令详解
2017/05/17 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
jquery实现烟花效果(面向对象)
2020/03/10 jQuery
Python-嵌套列表list的全面解析
2016/06/08 Python
python读取各种文件数据方法解析
2018/12/29 Python
Python获取网段内ping通IP的方法
2019/01/31 Python
python 魔法函数实例及解析
2019/09/25 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Python实现密钥密码(加解密)实例详解
2020/04/26 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
CSS3 对过渡(transition)进行调速以及延时
2020/10/21 HTML / CSS
在校生党员自我评价
2013/09/25 职场文书
大学生村官任职感言
2014/01/09 职场文书
幼儿园校车司机的岗位职责
2014/01/30 职场文书
幼儿园大班教学反思
2014/02/10 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书