免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2081 | 回复: 1
打印 上一主题 下一主题

[原创]原来ACID可以在IIS+PHP环境下 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-14 19:39 |只看该作者 |倒序浏览
事情是这样的,这些天在用snort+mysql+acid搭个IDS玩,网上看到的资料都是用apache+php来跑acid。
当我搭建完apache+php来运行acid后,觉得对apache的依赖应该不大。后来就做了IIS+PHP跑acid的实验。

开始第一步,安装表其实就没有通过,在acid_conf.php打开debug_mode后,发现acid没有接收到任何post的数据。所以我只能手工创建数据库表。
接着打开首页后,发现和在apache一样能正常现实,但点击某个详细的查询后,却没有任何数据。在debug_mode也发现,查询条件都没有被acid正确接收,所以断定是acid获取浏览器的request信息这个功能不正常。

继续对源代码进行分析,发现获取浏览器的信息是通过ImportHTTPVar()函数得到的;

查看ImportHTTPVar()函数,发现其实是通过$HTTP_POST_VARS、$HTTP_GET_VARS这两个变量得到浏览器的参数。(更专业点的说法我不懂了,俺还没有学过、写过PHP,在J2EE里面,这一个是通过HttpServletRequest获取浏览器提交的数据)。

到此我原以为没办法近一步跟踪了,既然不会PHP,我只能跟别的PHP程序来做个比较看看他们这么获取数据的。我找了份discuz论坛的代码,做个文件搜索,刚好找到以下代码:
   if(PHP_VERSION < '4.1.0') {
        $_GET = &$HTTP_GET_VARS;
        $_POST = &$HTTP_POST_VARS;
}

而acid中,直接就使用$HTTP_GET_VARS、$HTTP_POST_VARS这两个变量了。大概问题出在这里,于是我把acid的代码做了如下修改:
   if(PHP_VERSION >= '4.1.0') {
        $HTTP_GET_VARS = &$_GET;
        $HTTP_POST_VARS = &$_POST;
  }

测试通过,之所以用这种改法,是尽量减少代码的变动。但修改后不知这代码是否还能在apache下运行。

论坛徽章:
0
2 [报告]
发表于 2007-11-14 19:45 |只看该作者
ps 我的运行环境
操作系统:WINDOWS XP
web server:iis
php:PHP 5.2.2
mysql:5.0.24


ids:
snort 2.8
WinPcap 4.0
jpgraph-1.22
adodb502a
acid-0.9.6b23
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP