分享下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模拟post行为代码总结(POST方式不是绝对安全)
Feb 22 PHP
关于尾递归的使用详解
May 02 PHP
PHP实现读取一个1G的文件大小
Aug 24 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
php简单创建zip压缩文件的方法
Apr 30 PHP
Thinkphp单字母函数使用指南
May 08 PHP
thinkphp Apache配置重启Apache1 restart 出错解决办法
Feb 15 PHP
PHP实现图片批量打包下载功能
Mar 01 PHP
PHP批量删除jQuery操作
Jul 23 PHP
使用 PHP Masked Package 屏蔽敏感数据的实现方法
Oct 15 PHP
有关PHP 中 config.m4 的探索
Aug 26 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 判断网页是否是utf8编码的方法
2014/06/06 PHP
PHP文件上传判断file是否己选择上传文件的方法
2014/11/10 PHP
PHP中数据类型转换的三种方式
2015/04/02 PHP
PHP中两个float(浮点数)比较实例分析
2015/09/27 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
javascript十个最常用的自定义函数(中文版)
2009/09/07 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
jquery实现定时自动轮播特效
2015/12/10 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
微信小程序实现图片预览功能
2018/01/31 Javascript
详解如何解决Vue和vue-template-compiler版本之间的问题
2018/09/17 Javascript
小程序实现单选多选功能
2018/11/04 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
VUE简单的定时器实时刷新的实现方法
2019/01/20 Javascript
vue+axios全局添加请求头和参数操作
2020/07/24 Javascript
[51:32]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
Python中删除文件的程序代码
2011/03/13 Python
python删除过期log文件操作实例解析
2018/01/31 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
python感知机实现代码
2019/01/18 Python
Python学习笔记基本数据结构之序列类型list tuple range用法分析
2019/06/08 Python
Python @property使用方法解析
2019/09/17 Python
在jupyter notebook 添加 conda 环境的操作详解
2020/04/10 Python
Python 虚拟环境工作原理解析
2020/12/24 Python
详解HTML5中CSS外观属性
2020/09/10 HTML / CSS
在c#中using和new这两个关键字有什么意义
2013/05/19 面试题
材料采购员岗位职责
2013/12/17 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
优秀教师事迹材料
2014/12/15 职场文书
教师工作能力自我评价
2015/03/04 职场文书
辩论赛新闻稿
2015/07/17 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
《7的乘法口诀》教学反思
2016/02/18 职场文书
面试必问:圣杯布局和双飞翼布局的区别
2021/05/13 HTML / CSS