我正在尝试使用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
中运行,不确定是否会影响它。
答案 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