分享下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实现的下载css文件中的图片的代码
Feb 08 PHP
php 批量替换程序的具体实现代码
Oct 04 PHP
php获取远程图片体积大小的实例
Nov 12 PHP
C#使用PHP服务端的Web Service通信实例
Apr 08 PHP
PHP+MySQL修改记录的方法
Jan 21 PHP
PHP 反射(Reflection)使用实例
May 12 PHP
php排序算法实例分析
Oct 17 PHP
简单实现php上传文件功能
Sep 21 PHP
java解析json方法总结
May 16 PHP
在laravel框架中使用model层的方法
Oct 08 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
Apr 06 PHP
PHP新手指南
Apr 01 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
如何跨站抓取别的站点的页面的补充
2006/10/09 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
js控制input框只读实现示例
2014/01/20 Javascript
js触发select onchange事件的小技巧
2014/08/05 Javascript
node.js中的querystring.unescape方法使用说明
2014/12/10 Javascript
原生Ajax 和jQuery Ajax的区别示例分析
2014/12/17 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
jQuery实现鼠标双击Table单元格变成文本框及输入内容后更新到数据库的方法
2015/11/25 Javascript
JavaScript实现的SHA-1加密算法完整实例
2016/02/02 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
总结jQuery插件开发中的一些要点
2016/05/16 Javascript
微信小程序与后台PHP交互的方法实例分析
2018/12/10 Javascript
JavaScript中this用法学习笔记
2019/03/17 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
javascript实现评分功能
2020/06/24 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
[03:47]2015国际邀请赛第三日现场精彩回顾
2015/08/08 DOTA
python实现k均值算法示例(k均值聚类算法)
2014/03/16 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
2016/12/27 Python
Django模板Templates使用方法详解
2019/07/19 Python
Django获取应用下的所有models的例子
2019/08/30 Python
Python求解正态分布置信区间教程
2019/11/20 Python
Python3 shelve对象持久存储原理详解
2020/03/23 Python
Python 随机生成测试数据的模块:faker基本使用方法详解
2020/04/09 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
简单几步用纯CSS3实现3D翻转效果
2019/01/17 HTML / CSS
html5 拖拽上传图片实例演示
2013/04/01 HTML / CSS
艺术专业大学生自我评价
2013/09/22 职场文书
高中生活自我鉴定
2014/01/18 职场文书
文艺晚会主持词
2014/03/24 职场文书
汶川大地震感悟
2015/08/10 职场文书
教师纪律作风整顿心得体会
2016/01/23 职场文书
ConstraintValidator类如何实现自定义注解校验前端传参
2021/06/18 Java/Android
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang