连接到Zap Proxy Docker Image,“使用url超出最大重试次数:由ProxyError引起('无法连接到代理

时间:2017-07-11 00:37:39

标签: python python-3.x docker zap zapproxy

我正在尝试使用zap proxy via Docker 把它拉下来:

 docker pull owasp/zap2docker-stable

使用“从Docker容器外部访问API”部分中描述的命令进行操作:

 docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0

但我似乎无法连接到它。当我运行docker inspect <CONTAINER ID> | grep IPAddress时,我收到172.17.0.2(编辑:我可以扫描运行,我在Mac上将ZAP_SERVER_PROXY从172.17.0.2:8090更改为0.0.0.0:8090,因此将其编辑为代码示例下面)。所以我的脚本的开头看起来像:

import os
import time
from pprint import pprint
from zapv2 import ZAPv2

BASE_URL = os.getenv('BASE_URL', 'https://example.appspot.com/')
ZAP_SERVER_PROXY = os.getenv('ZAP_SERVER_PROXY', '0.0.0.0:8090')
API_KEY = ''

zap = ZAPv2(
    # apikey=API_KEY,
    proxies={
        'http': "http://%s" % ZAP_SERVER_PROXY,
        'https': "https://%s" % ZAP_SERVER_PROXY
    }
)

现在尝试使用python通过终端运行它并继续获取连接拒绝错误。此外,我已尝试将API_KEY部分注释掉,是否有人知道您在哪里找不到文档中的内容。

注意:我在macos上但运行docker-machine ip default没有做任何事情,因此不确定如何获取链接页面的底部和新的docker。在他们自己example之后对测试进行建模。在virtualenv -p python3 env中运行,不确定是否会影响它。

2 个答案:

答案 0 :(得分:2)

此外,您需要禁用ip过滤 - 有关如何执行此操作的详细信息,请参阅here,基本上只需使用以下内容:

docker run -p 8090:8090 -i owasp/zap2docker-stable zap.sh -daemon -port 8090 -host 0.0.0.0 -config api.disablekey=true -config api.addrs.addr.name=.* -config api.addrs.addr.regex=true

要小心,因为它允许从任何ip连接到Zaproxy,这在隔离的docker容器中运行时很好。

答案 1 :(得分:1)

由于您已在脚本中注释掉API密钥参数,请尝试使用-config api.disablekey=true调用zap守护程序。

  

docker run -p 8090:8090 -i owasp / zap2docker-stable zap.sh -daemon   -port 8090 -host 0.0.0.0 -config api.disablekey = true