DrHEADer有助于审核响应单个请求或请求列表时接收的安全头。
drheader的Python项目详细描述
欢迎使用drHEADer
在使用时,有许多HTTP报头可以增强网站的安全性。这些HTTP安全标头通常被忽略或未知,有助于防止使用时常见的web应用程序漏洞。在
DrHEADer有助于审核响应单个请求或请求列表的安全标头。在
当与OWASPApplication Security Verification Standard(ASVS)4.0结合使用时,它是一个非常有用的工具,可以将其作为自动CI/CD管道的一部分来包含,该管道用于检查丢失的HTTP报头。在
如何安装?在
这个项目是用python3.7.4开发的。 虽然它可以与Python 2.x配合使用,但即将出现终止生命(EOL),因此如果可能,请使用3.x。安装drHEADer的最简单方法是克隆此存储库,并通过终端窗口运行以下命令:
$ python3 setup.py install --user
这将安装所有的先决条件,最后得到一个drheader可执行文件。在
如何使用它?在
有两种方法可以使用drHEADer,这取决于您想要实现的目标。最简单的方法是使用CLI。在
CLI
drHEADer可以对目标执行一次扫描,并报告出现了哪些报头,如下所示:
^{pr2}$如果您希望扫描多个站点,则需要JSON格式的目标或txt文件,如下所示:
[{"url":"https://example.com","params":{"example_parameter_key":"example_parameter_value"}},...]
对于txt文件,请使用以下命令:
$ drheader scan bulk -ff targets.txt
在批量扫描期间可以指定许多参数,这些参数包括:
|选项|说明|
| :---------------- | :----------------------------------------------------- |
|-p,--post |使用post请求获取标头|
|--json |将报告输出为json|
|--调试|显示错误消息|
|--规则文件名|使用自定义规则集|
|--rules uri URL |使用自定义规则集,从远程服务器下载|
|--merge |在默认集上合并自定义规则集|
|--help |显示此消息并退出|
|--junit在./reports/junit.xml
文件夹中创建一个junit报告
要保存扫描结果,可以使用--json参数并将其管道传输到jq,这是一个轻量级且灵活的命令行json处理器,如下所示:
$ drheader scan single https://santander.co.uk --json | jq '.'
在项目中
也可以从现有项目中调用drHEADer,其实现方式如下:
fromdrheaderimportDrheader# create drheader instancedrheader_instance=Drheader(headers={'X-XSS-Protection':'1; mode=block'},status_code=200)report=drheader_instance.analyze()print(report)
自定义HTTP方法和头文件
默认情况下,该工具在发出请求时使用GET方法,但是可以通过提供method
参数来更改该方法:
# create drheader instancedrheader_instance=Drheader(url="http://test.com",method="POST")
请记住,您可以使用requests
支持的任何方法,如POST、PUT、GET和DELETE。在
同时,您可以自定义请求发送的头。为此,您只需使用request_headers
参数:
# create drheader instancecustom_headers={"token":"1234aerhga"}drheader_instance=Drheader(url="http://test.com",request_headers=custom_headers)
随着我们继续开发drHEADer,我们将进一步增强这个功能。在
其他requests
参数
可以包括requests
支持的verify参数。默认值设置为True
。在
# create drheader instancedrheader_instance=Drheader(url="http://test.com",verify=False)
将来可能会包含其他参数,例如timeout,allow_redirects或proxies。在
如何自定义drHEADer规则?在
DrHEADer依赖于一个yaml文件,该文件定义了审计安全头时将使用的策略。该文件位于./drheader/rules.yml
,您可以自定义它以满足您的特定需要。如果你想知道更多,请按照这个link来做。在
注释
- 在ubuntu系统上,您可能需要安装libyaml dev,以避免与缺少yaml.h相关的错误
路线图
我们对drHEADer有很多想法,因此会经常推出。有些事情y您将很快看到:
- 在Python库上构建,以便更容易地嵌入到您自己的项目中。在
- 发布API,它是从核心库中分离出来的-API允许您大规模地访问URL或端点
- 更好地集成到MiTM代理中。在
幕后黑手是谁?在
DrHEADer由桑坦德英国安全工程团队开发,他们是:
- 大卫·阿尔博内
- Javier Domínguez Ruiz
- 费尔南多·卡布雷佐
- James Morris
- 项目
标签: