分享下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 相关文章推荐
在WIN98下以apache模块方式安装php
Oct 09 PHP
PHP静态类
Nov 25 PHP
精通php的十大要点(上)
Feb 04 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
May 25 PHP
PHP读取txt文件的内容并赋值给数组的代码
Nov 03 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
Jun 28 PHP
php运行提示:Fatal error Allowed memory size内存不足的解决方法
Dec 17 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
CodeIgniter基于Email类发邮件的方法
Mar 29 PHP
定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内
May 23 PHP
ThinkPHP5&amp;5.1框架关联模型分页操作示例
Aug 03 PHP
laravel利用中间件防止未登录用户直接访问后台的方法
Sep 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
PHP+javascript液晶时钟
2006/10/09 PHP
计算一段日期内的周末天数的php代码(星期六,星期日总和)
2009/11/12 PHP
PHP基于cookie与session统计网站访问量并输出显示的方法
2016/01/15 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
swoole和websocket简单聊天室开发
2017/11/18 PHP
JS构建页面的DOM节点结构的实现代码
2011/12/09 Javascript
搭建pomelo 开发环境
2014/06/24 Javascript
JavaScript中的原型链prototype介绍
2014/12/30 Javascript
js调用百度地图及调用百度地图的搜索功能
2015/09/07 Javascript
jQuery对html元素的取值与赋值实例详解
2015/12/18 Javascript
Javascript中的迭代、归并方法详解
2016/06/14 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
vue v-model表单控件绑定详解
2017/05/17 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vue-cli项目中使用公用的提示弹层tips或加载loading组件实例详解
2018/05/28 Javascript
微信小程序下拉加载和上拉刷新两种实现方法详解
2019/09/05 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
浅谈Vue 函数式组件的使用技巧
2020/06/16 Javascript
vue项目中微信登录的实现操作
2020/09/08 Javascript
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python控制台中实现进度条功能
2015/11/10 Python
Python Xml文件添加字节属性的方法
2018/03/31 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
基于Python实现迪杰斯特拉和弗洛伊德算法
2020/05/27 Python
python微信撤回监测代码
2019/04/29 Python
Python替换月份为英文缩写的实现方法
2019/07/15 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
python 实现多维数组转向量
2019/11/30 Python
HTML5新特性之语义化标签
2017/10/31 HTML / CSS
介绍一下JMS编程步骤
2015/09/22 面试题
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
生日派对邀请函
2014/01/13 职场文书
环保倡议书500字
2014/05/15 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
使用CSS连接数据库的方式
2022/02/28 HTML / CSS