详细内容
ModSecurity for Apache2[七十三]
发布日期:2010-09-26     点击:7322     字体:[ ]
exec
说明:执行一个作为参数提供的外部脚本/二进制。在v2.5.0,如果提供给exec的参数是一个Lua脚本(有.lua扩展器检测),这个脚本将被内部处理。这意味着你将从脚本里获得请求数据的内部访问权限。可以参考SecRuleScript文档来获取更多关于怎样编写Lua文件的资料。

动作组:非中断性

例如:

 
# The following is going to execute /usr/local/apache/bin/test.sh
# as a shell script on rule match.
SecRule REQUEST_URI "^/cgi-bin/script\.pl" \
    "phase:2,t:none,t:lowercase,t:normalisePath,log,exec:/usr/local/apache/bin/test.sh"
 
# The following is going to process /usr/local/apache/conf/exec.lua
# internally as a Lua script on rule match.
SecRule ARGS:p attack log,exec:/usr/local/apache/conf/exec.lua
 

注意
这个执行动作不依赖于任何中断动作。外部脚本将一直被称为不带参数。一些交互信息将被放置在环境变量里。所有常见的CGI环境变量都将在那里。你应该注意分叉一个线程处理将导致所有的线程在一个新处理里复制。因此分叉在多线程处理里将带来更大的开销。你执行的脚本必须写到标准输出,如果不这样ModSecurity将认为它不工作。

expirevar
说明:配置一个集合变量在给定的几秒钟内过期。

动作组:非中断性

例如:

 
SecRule REQUEST_COOKIES:JSESSIONID "!^$" nolog,phase:1,pass,chain
SecAction setsid:%{REQUEST_COOKIES:JSESSIONID}
SecRule REQUEST_URI "^/cgi-bin/script\.pl" \
    "phase:2,t:none,t:lowercase,t:normalisePath,log,allow,\
setvar:session.suspicious=1,expirevar:session.suspicious=3600,phase:1"

注意

你应该同时用expirevar动作和setvar动作以保持缩进过期时间。如果他们使用他们自己的(可能在SecAction指令里)过期时间能获得重新设定。当变量从集合里移除,并且没有其他变化,集合在请求结束将不写在磁盘上。这是因为当集合在后续请求里再一次被读变量能一直再一次过期。
用户评论
昵称 
内容  *
验证码   
   
Copyright © 2010 zdbase.com All Rights Reserved. 苏ICP备15039389号 可人软件设计