分享下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
如何从一个php文件向另一个地址post数据,不用表单和隐藏的变量的
Mar 06 PHP
给初学者的30条PHP最佳实践(荒野无灯)
Aug 02 PHP
PHP数组循环操作详细介绍 附实例代码
Feb 03 PHP
邮箱正则表达式实现代码(针对php)
Jun 21 PHP
php中adodbzip类实例
Dec 08 PHP
php比较两个字符串长度的方法
Jul 13 PHP
PHP的时间戳与具体时间转化的简单实现
Jun 13 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
PHP使用PDO访问oracle数据库的步骤详解
Sep 29 PHP
Laravel5.4简单实现app接口Api Token认证方法
Aug 29 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
Oct 10 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
人尽可用的Windows技巧小贴士之下篇
2007/03/22 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
Javascript 垃圾收集机制介绍理解
2013/05/14 Javascript
单击复制文字兼容各浏览器的完美解决方案
2013/07/04 Javascript
javascript 树形导航菜单实例代码
2013/08/13 Javascript
用js的for循环获取radio选中的值
2013/10/21 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
javascript复制粘贴与clipboardData的使用
2014/10/16 Javascript
JS+DIV+CSS排版布局实现美观的选项卡效果
2015/10/10 Javascript
详谈Angular 2+ 的表单(一)之模板驱动型表单
2017/04/25 Javascript
微信小程序http连接访问解决方案的示例
2018/11/05 Javascript
ES6中Set和Map数据结构,Map与其它数据结构互相转换操作实例详解
2019/02/28 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[02:07]2017国际邀请赛中国区预选赛直邀战队前瞻
2017/06/23 DOTA
Python 用户登录验证的小例子
2013/03/06 Python
python从入门到精通(DAY 3)
2015/12/20 Python
Python编程中归并排序算法的实现步骤详解
2016/05/04 Python
Python2.7基于淘宝接口获取IP地址所在地理位置的方法【测试可用】
2017/06/07 Python
Python SQLite3数据库日期与时间常见函数用法分析
2017/08/14 Python
Python Tensor FLow简单使用方法实例详解
2020/01/14 Python
Python自动重新加载模块详解(autoreload module)
2020/04/01 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
2020/05/11 Python
keras输出预测值和真实值方式
2020/06/27 Python
html5时钟实现代码
2010/10/22 HTML / CSS
巧用HTML5给按钮背景设计不同的动画简单实例
2016/08/09 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
英国领先的在线高尔夫商店:Gamola Golf
2019/11/16 全球购物
作风建设年活动总结
2014/08/27 职场文书
个人年终总结结尾
2015/03/06 职场文书
《岳阳楼记》原文、译文赏析
2019/09/10 职场文书
导游词之西江千户苗寨
2019/12/24 职场文书
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA