分享下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
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
phpword插件导出word文件时中文乱码问题处理方案
Aug 19 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
Laravel 5 框架入门(四)完结篇
Apr 09 PHP
php实现随机生成易于记忆的密码
Jun 19 PHP
PHP实现生成带背景的图形验证码功能
Oct 03 PHP
php封装json通信接口详解及实例
Mar 07 PHP
php命名空间设计思想、用法与缺点分析
Jul 17 PHP
PHP字符串和十六进制如何实现互相转换
Jul 16 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 开发环境配置(Zend Studio)
2010/04/28 PHP
php file_exists 检查文件或目录是否存在的函数
2010/05/10 PHP
php数组使用规则分析
2015/02/27 PHP
PHP实现通过Luhn算法校验信用卡卡号是否有效
2015/03/23 PHP
PHP配置ZendOpcache插件加速
2019/02/14 PHP
Javascript中的数学函数
2007/04/04 Javascript
jQuery创建平滑的页面滚动(顶部或底部)
2013/02/26 Javascript
jQuery常用操作方法及常用函数总结
2014/06/19 Javascript
原生JavaScript编写俄罗斯方块
2015/03/30 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
Bootstrap每天必学之警告框插件
2016/04/26 Javascript
移动端 一个简单易懂的弹出框
2016/07/06 Javascript
JavaScript动态检验密码强度的实现方法
2016/11/09 Javascript
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
解决Vue2.0 watch对象属性变化监听不到的问题
2018/09/11 Javascript
微信小程序实现单选功能
2018/10/30 Javascript
jquery实现简易验证插件封装
2020/09/13 jQuery
[00:20]TI9不朽观赛名额抽取
2019/08/05 DOTA
[49:31]DOTA2-DPC中国联赛 正赛 Elephant vs LBZS BO3 第二场 1月29日
2021/03/11 DOTA
使用PyInstaller将Python程序文件转换为可执行程序文件
2016/07/08 Python
浅谈python import引入不同路径下的模块
2017/07/11 Python
python微信跳一跳系列之自动计算跳一跳距离
2018/02/26 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
python常用数据重复项处理方法
2019/11/22 Python
python 求两个向量的顺时针夹角操作
2021/03/04 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
html5 的a标签 Href 拨电话的写法
2013/11/04 HTML / CSS
解决canvas转base64/jpeg时透明区域变成黑色背景的方法
2016/10/23 HTML / CSS
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
超市重阳节活动方案
2014/02/10 职场文书
2014年小学辅导员工作总结
2014/12/23 职场文书
工人先锋号事迹材料
2014/12/24 职场文书
停课通知书
2015/04/24 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
任命书格式范文
2015/09/22 职场文书
2016年“5.12”护士节慰问信
2015/11/30 职场文书