`
txf2004
  • 浏览: 6868946 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

define实现权限认证

阅读更多
版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出版、作者信息和本声明。否则将追究法律责任。http://blog.csdn.net/mayongzhan - 马永占,myz,mayongzhan

周末有点时间,研究了下define实现权限认证.
使用define验证可以达到最基本的登陆通过认证.
lzy同志用过define验证一个系统是否被允许使用.discuz论坛里也有关于define的使用.
亲自试了一下.
通过一个文件引用另外一个文件.实现权限认证.
做了个简单的登陆,登陆成功后define一个值,然后加载需要权限认证的文件.
成功!!!
直接访问另外的那个文件,失败!!!
然后测试了下远程的安全性.
打开php.ini中的allow_url_include ,这个是控制是否可以远程include文件的.然后include远程的文件(我把那个文件放到测试服务器上),继续登陆.失败!!!.结论:远程破解这种验证方式是不可行的.
这种方式只适合简单权限认证,如果权限系统比较复杂.这个可能就只能用来封装同一模块内文件了.
<!-- 这个是login.php文件,是主要的文件 -->
<?php
/**
* @name login.php
* @date Sun Oct 21 18:33:39 CST 2007
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*/
if (isset($_POST["userName"])) {
if ($_POST["userName"]=="MyZ") {
define("MyZ","logined");
require("mainPage.php");
}
}
else {
echo <<<HTML
<form method="POST" action="login.php" name="loginForm" id="loginForm">
<input name="userName" id="userName" type="text" value="" />
<input name="submit" id="submit" type="submit" value="提交" />
</form>
HTML;
}
?>
<!-- 这个是引用的文件,就是需要权限认证才能访问的文件 -->
<?php
/**
* @name mainPage.php
* @date Sun Oct 21 18:34:53 CST 2007
* @copyright 马永占(MyZ)
* @author 马永占(MyZ)
* @link http://blog.csdn.net/mayongzhan/
*/
if (!defined("MyZ")) {
die("Access Denied");
}
echo "In mainPage! <a href='login.php'>back to login</a>";
?>
v
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics