如前文所言,ZAP的工作机制,是通过“中间代理”的形式实现。
ZAP的代理设置可以从菜单中的:工具 - 选项 - Local Proxies加载。
在这里可以设置ZAP用来接受接入请求的地址和端口等。
地址
ZAP将要使用的本地地址。所有的可用地址都会被自动检测到并且列出。
无特殊要求可以直接使用localhost或127.0.0.1。
端口
ZAP将会监听的端口,默认8080。如与本机其他服务端口冲突(比如tomcat也是默认使用8080)可以修改使用其他端口。
基本上配置好地址和端口,ZAP的代理就已经设置完毕可以开始监听了。除此之外还有几项设置:
Behind NAT
表明ZAP本地代理将会使用NAT模式。选择此项后,ZAP会尝试确定公网IP,以检测和处理从公网IP接入的请求。
这个选项只对以服务(API)模式应用ZAP时有效。
Remove Unsupported Encodings
允许代理将不支持的编码从"Accept-Encoding"请求头中移除,这样代理不会对响应做出转码。
如非专门测试转码,此选项应始终保持勾选。
使用不支持的编码的信息将不会被扫描(主动、被动都不会)。
Security Protocols
允许选择接入连接(比如浏览器)可使用的SSL/TLS版本。最少需要选择一个版本,而且不被JRE支持的版本将不能选择。
SSLv2Hello协议必须与其他SSL/TLS结合使用。
以上的设置对于主代理和附加代理都生效。
附加代理
在附加代理模块,我们可以按照需求添加更多的代理地址和端口让ZAP进行监听。
拦截代理/透明代理
ZAP本地代理也可以被设置为拦截/透明代理。透明代理一般用来将内网请求进行拦截再转发,比如常见的上网监控管理就是使用拦截代理实现。
比如,你有一台测试用的Linux机器,那么通过以下命令可以把所有HTTP和HTTPS路由到ZAP的监听地址(例:172.16.100.38:8080):
iptables -t nat -A OUTPUT -p tcp --dport 443 -j DNAT --to-destination 172.16.100.38:8080 iptables -t nat -A OUTPUT -p tcp --dport 80 -j DNAT --to-destination 172.16.100.38:8080