设计用于白名单和/或黑名单http请求的web应用防火墙。

wlister的Python项目详细描述


``` wlister``是一个web应用防火墙(waf),允许基于白名单和攻击特征的web应用程序保护。前者用于快速验证已授权且格式正确的请求。后者用于在http请求中检测已知的攻击模式。

使用"wlister"可以应用这两种方法,并可以随意组合它们。

``wlister``允许描述web应用程序和客户端之间的交互,使用http请求的每一部分及其组合作为潜在的验证点(uri、参数、头、内容、方法、协议等)。



使用一组规则分析ng请求。规则具有对请求应用的必须满足的先决条件。如果满足先决条件(代表不满足),则应用规则(分别使用下一条规则。""rule is applied"表示对请求的某个部分执行模式匹配。

根据匹配结果(匹配或不匹配),可以指定操作。目前,有3个操作:

-标记/取消标记下一个规则分析的请求
-白名单
-黑名单

白名单和黑名单终止请求分析。标记/取消标记有助于构建智能的前置条件,避免应用与规则完全无关的规则(例如,*http静态内容请求不能由专用于身份验证过程的规则或任何其他规则进行检查)。

用于单元测试的规则配置文件使用所有可用功能。

需求

i.


2.2.22-1ubuntu 1.4apache http服务器-传统的非线程模型
```

`````
$sudo dpkg-l grep mod python
ii libapache2 mod python 3.3.1-9ubuntu1用于apache 2的python嵌入模块
````
`````
$cat/etc/lsb release
distrib id=ubuntu
distrib_release=12.04
distrib_codename=precise
distrib_description="ubuntu 12.04.4 lts"
````````

````mod_python```应该已经死了,但它现在被使用(不是wsgi)。另外,它似乎并没有那么死,请参见:

*[mod_python-主页](http://modpython.org/)
*[mod_python-the long story](http://grisha.org/blog/2013/10/25/mod python the long story/)


pros

``wlister``允许分析http请求的任何部分,头文件a第二个身体,以一种方便的方式,只关注有趣的部分。

规则先决条件、标记和操作(如果(错误)匹配意味着只应用必要的规则,并快速完成决策;允许或拒绝。

``wlister``尝试使用延迟计算,以避免转换可能永远不会使用的数据(但这是本地优化,必须进行度量)。

cons

``wlister``基于``mod_python``和apache。这本身并不坏,但因为它是一个python应用程序。虽然到目前为止还没有做过基准测试,但速度肯定不够快。

``wlister``基于``mod python``和apache,因此不能在其他web服务器/代理中使用。

缺少什么?

**文档**``doc/````中有些东西。规则文档肯定过时了。但是实现的内容是经过测试的,因此可以从``conf/rules.conf```和``tests/*.py````中找到可读的示例。

**日志**它存在,但不够好。将日志格式用于高级调试/配置和日志格式以引发警报非常有用。另一种格式…无论什么。必须实现格式化的日志记录工具。

**攻击签名**此处没有签名,但我想mod_security signatures数据库可以提供帮助。

**文档**用于单元测试的规则文件确实可以提供帮助,但所有规则指令都必须在某个时候进行文档记录。

**代码审阅**一个开发人员,一个开发人员。但是有测试ts(请参见``tests/*.py```)

**重构**匹配指令是硬编码的。拥有一个新的意味着开发它并通过容易出错的代码绑定内容。有人会想要一个新的,所以最好简单。

**学习模块**推断模式,查找不变量/常量,…

r特此授予任何
目的,无论是否收费,前提是上述
版权声明和本许可声明出现在所有副本中。


本软件按"原样"提供,作者不承担与本软件有关的所有保证,包括所有隐含保证。适销性和适用性。在任何情况下,作者都不对任何特殊的、直接的、间接的或间接的损害或任何由使用、数据或利润损失引起的损害负责,无论是在合同诉讼、疏忽或其他侵权诉讼中,还是在与U或此软件的性能。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
多线程试图找出线程和Java   java字符串池(字符串和字符串缓冲区)   java如何通过entryid从kaltura获取文件url   java如何通过Oracle服务总线重定向请求   java RecyclerView我最多只能添加一行   java如何防止Paho在处理来自代理的消息后发送ACK?   java从泛型方法调用重载方法   java如何使javac编译我的多语言程序   java Log4j不会在删除时重新创建文件   java如何设置Zk会话(org.zkoss.Zk.ui),以便对扩展GenericForwardComposer的控制器类进行单元测试   Java:为什么可以对通配符集合进行强制转换?   java如何将数据更新到从自定义视图类创建的对象,以便可以在自定义视图上绘制数据?   java如何解决在片段中使用意图时应用程序崩溃的问题?   java如何使来自JSP的Servlet调用更安全?   java在Lucene中索引正则表达式并搜索输入   java如何设置Jetty,使其与Tomcat对等,同时支持JSP和servlet?   java在检查和使用对话框输入时遇到问题   java Git可以在签出时更改文件吗?