我正在编写一个python客户端来使用zap客户端库测试webapp。由于在稳定的zap版本中没有支持基于json的auth方法,我现在正在使用live zap容器。
在python客户端中,我尝试过以下内容:
login_config_params = ''.join(("loginUrl=https://x.x.x.x/login/&loginRequestData=",
urllib.parse.quote_plus("{\"username\":\"xxxxx\",\"password\":\"xxxxx\"}")))
zap.authentication.set_authentication_method(context_id, "jsonBasedAuthentication", authmethodconfigparams=login_config_params, apikey=apikey)
当执行此操作时,我没有在容器中看到有关成功设置的任何日志。
请帮我检查一下这是否合适并准备好继续
答案 0 :(得分:1)
如果只是使用API,那么在正确设置身份验证时可以解决问题。
我建议使用ZAP UI进行测试,因为这样可以让您更轻松地查看更新内容 - 您仍然可以使用API配置ZAP,但您也可以查看使debugginf更容易的请求和响应。
答案 1 :(得分:0)
大多数REST / JSON类型的API使用某种授权标头,因此您应该看到您的应用使用的内容,并模仿它。然后将这些标头添加到每个请求。例如,如果您有cookie和授权标头:
zap.replacer.add_rule('Auth Header', True, 'REQ_HEADER', False, 'Authorization', 'Bearer ' + auth_token)
zap.replacer.add_rule('Cookie', True, 'REQ_HEADER', False, 'Cookie', 'SESSIONID=' + sessionid)
这些将包含在每个后续扫描请求中。