crs-setup.cnf

#SecDefaultAction指令后的规则都继承这一设置,除非为某条规则指定了一个特定的动作,或者指定了新的SecDefaultAction。特别注意到,未经处理的disruptive动作是不允许的,但是在SecDefautlAction中一不小心就会继承了使用disruptive动作。
#SecDefaultAction必须指定一个disruptive动作和处理阶段,而且不能包含元数据动作
SecDefaultAction "phase:1,log,auditlog,pass"
SecDefaultAction "phase:2,log,auditlog,pass"

SecAction \
"id:900990,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:tx.crs_setup_version=302"

 

ModSecurity 2.x允许把规则置于下述五个阶段之一:

请求头(REQUEST_HEADERS) 阶段

这个阶段的规则会在apache完成请求头的读取后立即被执行(post-read-request阶段),这时,还没有读取请求体,意味着不是所有的参数都可用。如果你必须让规则尽早运行,应把规则放在这个阶段(在apache使用这个请求做某些事前),在请求体被读取前做些事情,从而决定是否缓存这个请求体,或者决定你将希望这个请求体如何被处理(如是否以XML格式解析或不解析)。

请求体(REQUEST_BODY) 阶段

这是通用输入分析阶段,大部分传统的应用规则不在这儿,这个阶段你肯定能收到参数(只有读取过请求体后),在请求体阶段,ModSecurity支持三种编码类型。

l  application/x-www-form-urlencoded - used to transfer form data

l  multipart/form-data - used for file transfers

l  text/xml - used for passing XML data

大部分WEB应用还没有使用其它的编码方法。

响应头(RESPONSE_HEADERS) 阶段

发生在响应头被发送到客户端之前,如果你想观察响应发生前就在这儿运行,如果你想使用响应头来决定你是否想缓存响应体也行。注意一些响应状态码(如404)在请求环的早期就被apache管理着,我也无法触发预期。加上apache在后面的勾子上双增加了一些响应头(如日期、服务器和连接信息等),这些我们无法触发和审查。在代理配置模式下或使用phase:5(logging)工作的较好。

响应体(RESPONSE_BODY) 阶段

这是通用输出分析阶段,这里你能运行规则截断响应体(当然提供缓存)。这个阶段你想检查输出的HTML信息公布、错误消息和失败的验证文字。

记录(LOGGING) 阶段

在日志发生前运行的一个阶段,放在这个阶段的规则只能影响日志记录器如何执行,这个阶段可以检测apache记录的错误消息,在这个阶段你不能拒绝或阻断连接,因为太迟了,这个阶段也允许检测其它的响应头,如那在phase:3或者phase:4阶段中不可用的。注意在这个阶段,你应当小心不要继承破坏性的动作到规则中,这样的情况在ModSecurity2.5.0及其以后的版本中被当作配置错误。

图-1是标准的apache请求流程,5个ModSecurity处理阶段显示其中。因此,在rule的部分即可指定你要处理的哪一部份进行处理。

图-1

modSecurity规则学习(二)——配置文件的更多相关文章

  1. Hexo系列(二) 配置文件详解

    Hexo 是一款优秀的博客框架,在使用 Hexo 搭建一个属于自己的博客网站后,我们还需要对其进行配置,使得 Hexo 更能满足自己的需求 这里所说的配置文件,是位于站点根目录下的 _config.y ...

  2. modSecurity规则学习(一)——配置文件

    环境:modSecurity3.0,nignx1.13.8 modSecurity配置文件 1.nginx.conf server { listen ; modsecurity on; //启动mod ...

  3. Struts2(二)——配置文件struts2.xml的编写

    接上一篇博客,这篇博客讲述一下2——9小标题的内容,这些问题都可以在struts2配置文件中设置(当然有的也可以在Struts.properties属性文件,web.xml中进行设置),而且常规开发中 ...

  4. Spring Boot 学习之路二 配置文件 application.yml

    一.创建配置文件 如图所示,我们在resources文件夹中新建配置文件application.yml   结构图 二.一些基本配置 server: port: 8090 //配置端口 session ...

  5. modSecurity规则学习(三)——SecRule

    通用格式 SecRule VARIABLES OPERATOR [TRANSFORMATION_FUNCTIONS, ACTIONS]   阶段phase (1)request headers (2) ...

  6. Spring Boot(二) 配置文件

    文章导航-readme 一.配置Spring Boot热部署     技术的发展总是因为人们想偷懒的心理,如果我们不想每次修改了代码,都必须重启一下服务器,并重新运行代码.那么可以配置一下热部署.有了 ...

  7. Heritrix源码分析(二) 配置文件order.xml介绍(转)

    本博客属原创文章,欢迎转载!转载请务必注明出处:http://guoyunsky.iteye.com/blog/613412      本博客已迁移到本人独立博客: http://www.yun5u. ...

  8. springboot学习入门之二---配置文件解析

    2springboot配置文件解析 2.1application.properties配置文件 使用application.properties全局配置文件(位置为src/main/resources ...

  9. SpringBoot2.0(二) 配置文件多环境

    在SpringBoot中,多环节的配置文件名基于application-{profile}.properties的格式,其中{profile}对应环境标识,比如: application-daily. ...

随机推荐

  1. 10.Intellij IDEA svn的使用详解

    转自:https://www.2cto.com/kf/201703/614858.html 首先提一句,IDEA对各种的版本控制工具的支持是非常好的,打开系统设置界面,就可以看到他有专门的一栏 Ver ...

  2. 提高realm存储速率

    我的数据量大约有2.5M,但是完全存储到数据库差不多用了11秒,有没有比较好的方法提高存储效率 提高realm存储速率 >> android这个答案描述的挺清楚的:http://www.g ...

  3. 实体转XML XML转实体

    // <summary> /// 实体类序列化成xml /// </summary> /// <param name="enitities">实 ...

  4. asp.net导出execl和图片

    个人常用导出execl方法: #region "导出文档" /// <summary> /// Export("application/ms-excel&qu ...

  5. python制造模块

    制造模块: 方法一: 1.mkdir /xxcd /xx 2.文件包含: 模块名.py setup.py setup.py内容如下:#!/usr/bin/env pythonfrom distutil ...

  6. mysql 导出到 mongodb 与快速插入测试数据

    快速插入数据: 因为 MongoDB 的底层引擎是 JS 引擎,所以完全可以使用一些 Js 的语法.   for(var i=0;i<10000;i++){    db.ceshi.insert ...

  7. [USACO5.4]奶牛的电信Telecowmunication(网络流)

    P1345 [USACO5.4]奶牛的电信Telecowmunication 题目描述 农夫约翰的奶牛们喜欢通过电邮保持联系,于是她们建立了一个奶牛电脑网络,以便互相交流.这些机器用如下的方式发送电邮 ...

  8. Java中四种引用的区分

    强引用(StrongReference) 强引用就是指在程序代码之中普遍存在的,比如下面这段代码中的object和str都是强引用: 1 2 Object object = new Object(); ...

  9. EF框架—Database-First

    ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,现已经包含在 Visual Studio 2008 S ...

  10. [Poi] Build a Vue App with Poi

    Poi uses the Vue babel presets by default, so there is no additional install required to get up-and- ...