分享下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基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
Look And Say 序列php实现代码
May 22 PHP
解析wamp5下虚拟机配置文档
Jun 27 PHP
php实现mysql备份恢复分卷处理的方法
Dec 26 PHP
PHP文件缓存类示例分享
Jan 30 PHP
PHP+Mysql+jQuery文件下载次数统计实例讲解
Oct 10 PHP
简单谈谈php延迟静态绑定
Jan 26 PHP
thinkphp框架下404页面设置 仅三步
May 14 PHP
深入理解PHP之源码目录结构与功能说明
Jun 01 PHP
Yii2.0中的COOKIE和SESSION用法
Aug 12 PHP
php常用字符函数实例小结
Dec 29 PHP
php探针不显示内存解决方法
Sep 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
关于zend studio 出现乱码问题的总结
2013/06/23 PHP
php接口和抽象类使用示例详解
2014/03/02 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
js data日期初始化的5种方法
2013/12/29 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
用原生JS对AJAX做简单封装的实例代码
2016/07/13 Javascript
利用Vue.js框架实现火车票查询系统(附源码)
2017/02/27 Javascript
javascript中的面向对象
2017/03/30 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
vue router demo详解
2017/10/13 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
javascript数组拍平方法总结
2018/01/20 Javascript
angularjs实现的购物金额计算工具示例
2018/05/08 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
基于vue+axios+lrz.js微信端图片压缩上传方法
2019/06/25 Javascript
vue实现下载文件流完整前后端代码
2020/11/17 Vue.js
对Python random模块打乱数组顺序的实例讲解
2018/11/08 Python
解决Python运行文件出现out of memory框的问题
2018/12/03 Python
python实现AES和RSA加解密的方法
2019/03/28 Python
Python爬取数据保存为Json格式的代码示例
2019/04/09 Python
Python可变和不可变、类的私有属性实例分析
2019/05/31 Python
django框架model orM使用字典作为参数,保存数据的方法分析
2019/06/24 Python
Smallable英国家庭概念店:设计师童装及家居装饰
2017/07/05 全球购物
Nanushka官网:匈牙利服装品牌
2019/08/14 全球购物
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
《花木兰》教学反思
2014/04/09 职场文书
民主生活会剖析材料
2014/09/30 职场文书
大学生毕业个人总结
2015/02/15 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
贫民窟的百万富翁观后感
2015/06/09 职场文书
党员证明模板
2015/06/19 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
导游词之无锡华莱坞
2019/12/02 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
vue3使用vue-router的完整步骤记录
2021/06/20 Vue.js