首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > ASP > About define()
【标  题】:About define()
【关键字】:About,define
【来  源】:http://blog.csdn.net/fallingleaf/archive/2007/04/19/1571270.aspx

About define()

Author: SuperHei
Date: 2007-04-18
http://www.ph4nt0m.org

很多php使用defined()来防止外部直接访问php文件,从而保证了只让内部php文件include等调用。如下面:
<?//tag.phpif (!defined("X")) {    echo "You Cannot Access This Script Directly, Have a Nice Day.";    exit();}?>


这样的代码可以解决很多的安全问题,比如变量未定义[应该说在本文件内未定义]。

但是这样的在本地包含漏洞前就没什么意义了。比如进来看一代码

common.php文件里:
if ( !defined('X') ){    die('Do not access this file directly.');}if ( !isset($root_path) ){    $root_path = './';}require_once($root_path . 'config.php');

如果没有!defined('X') 的限制那么我们,这里$root_path未定义导致了一个远程包含。


而在改脚本又存在一个update-->include的2次攻击导致的本地包含,那么我们可以通过这个本地包含漏洞包含common.php导致突破!defined('X'),转化为远程包含。
 
使用HttpWebRequest访问网页及获取数据:【上一篇】
HTML应用程序(HTML Application):【下一篇】
【相关文章】
  • 【翻译】Effective C++ (第2项:尽量使用const、enum、inline,避免使用 #define)
  • WJ的Direct3D简明教程3:Create Texture with User-defined Image Data
  • Definer and Invoker Rights(转)
  • complain about Linux
  • List sessions and some details about them
  • Something about Perl (4) 流程控制
  • About FreeMarker
  • 调试dlopen试遇到undefined symbol问题的小技巧
  • Something about Perl (3)
  • NMAKE : warning U4006: special macro undefined : '$<'
  • 【随机文章】
  • 不可思议 普通700MB光盘能刻360分钟的VCD影片
  • 用VB快速读取TextBox第N行的数据
  • M-系列认证课程
  • 怎样设置 JSP 的虚拟目录
  • FLASH5属性设置的妙用
  • 使用tolua++创建基于C\C++语言的lua脚本
  • C#写的五子棋程序<转>
  • sed 用法介绍
  • 堆与栈有什么区别
  • apache note | Apache 学习笔记(心得)
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 软讯网络 All Rigths Reserved.