亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ChromeDriver 未通過 Java ZAP API 代理本地流量

ChromeDriver 未通過 Java ZAP API 代理本地流量

www說 2023-03-17 15:47:35
我對 ZAP 很陌生,我必須使用 ZAP java API 對 Web 應用程序執行安全測試,使用 Selenium 在瀏覽器上導航,為 ZAP 創建流量。我正在使用 Eclipse IDE for Enterprise Java Developers 版本 2019-03 (4.11.0) 和 Java jdk-1.8.0_212 和 Maven 3.5.3,以及 3 個導入的庫:harlib 版本 1.1.1 (edu.umass.cs.benchlab harlib )、zap api 版本 1.7.0 (org.owasp zaproxy-api) 和代理版本 2.4.2 快照 (net.continuumsecurity zap-java-api)我遵循了本教程: https: //dzone.com/articles/automate-zap-security-tests-with-selenium-webdrive-1,它有效。回顧一下,它使用了 3 個類:一個用于實例化 Web 瀏覽器 (BrowserDriverFactory.java),一個用于實際存儲所有導航功能和參數 (WebSiteNavigation.java),一個用于創建 ZAP 代理、配置它并執行安全測試作為 @Test 函數 (ZapSecurityTest.java)。我在代理我的本地應用程序時遇到了一些問題:似乎我的本地應用程序不使用 ZAP 代理,即使我的 chromedriver 很清楚代理(我在 ZAP UI 中看到非本地流量)。奇怪的是,我什至將我的本地 URL 顯式添加到上下文并將其設置為在范圍內:clientapi.context.includeInContext(contextName,  java.util.regex.Pattern.quote(WebSiteNavigation.BASE_URL));clientapi.context.setContextInScope(contextName, "true");這樣做并在我的本地應用程序上導航后,我在 ZAP UI 中看到了相關的非本地流量,但沒有看到本地流量。當我檢查 clientapi.context.urls(contextName) 返回的內容時,它是空的。我用以下方法創建我的代理:private static Proxy createZapProxyConfiguration() {       Proxy proxy = new Proxy();       proxy.setHttpProxy(ZAP_PROXYHOST + ":" + ZAP_PROXYPORT);       proxy.setSslProxy(ZAP_PROXYHOST + ":" + ZAP_PROXYPORT);       return proxy;}調用者:@Beforepublic void setUp() {    // Configure ZAP Scanner    zapScanner = new ZAProxyScanner(ZAP_PROXYHOST, ZAP_PROXYPORT,       ZAP_APIKEY);    clientapi = new ClientApi(ZAP_PROXYHOST, ZAP_PROXYPORT);       // Start new session    zapScanner.clear();    log.info("Started a new session: Scanner");    // Create ZAP API client    zapSpider = (Spider) zapScanner;    // Create driver object    driver = BrowserDriverFactory.createChromeDriver      (createZapProxyConfiguration(), BROWSER_DRIVER_PATH);    siteNavigation = new WebSiteNavigation(driver);}奇怪的是,幾天前,當我第一次設置它時,它就像一個魅力......然后我嘗試自動化身份驗證過程,但從那以后,它不起作用......我在這里錯過了什么嗎?我至少在尋找正確的地方?
查看完整描述

1 回答

?
慕標琳琳

TA貢獻1830條經驗 獲得超9個贊

默認情況下,Chrome 不會代理默認發送到 localhost 的請求,因此如果是這種情況,您需要向 chrome 驅動程序傳遞一個額外的標志。這是使用 JSON 配置它的方式:


capabilities: {

    browserName: 'chrome',

    proxy: proxy

    chromeOptions: {

      args: ['--proxy-bypass-list=<-loopback>']

    }

  },

使用 Java API 也可以做到這一點。


查看完整回答
反對 回復 2023-03-17
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號