可能有幾種原因導致這種情況。以下是一些常見的問題和可能的解決方法: 證書驗證問題: 當你使用mitmproxy抓包時,它通常會生成自簽名的SSL證書,以便進行中間人攻擊檢查。但在Python中使用requests庫時,預設情況下,它會驗證SSL證書的有效性。你需要禁用SSL驗證,以便使用mitmpr ...
可能有幾種原因導致這種情況。以下是一些常見的問題和可能的解決方法:
證書驗證問題:
當你使用mitmproxy抓包時,它通常會生成自簽名的SSL證書,以便進行中間人攻擊檢查。但在Python中使用requests庫時,預設情況下,它會驗證SSL證書的有效性。你需要禁用SSL驗證,以便使用mitmproxy生成的證書。
你可以在requests中通過設置verify參數為False來禁用SSL證書驗證,如下所示:
import requests
url = "https://example.com/api/endpoint"
response = requests.get(url, verify=False)
這隻是一個解決方案,但在實際應用中,禁用SSL驗證可能會引入安全風險,因此請慎重使用。另一種方法是將mitmproxy的根證書添加到Python的信任證書列表中,以使requests能夠驗證mitmproxy生成的證書。
代理設置問題:
確保你在Python的requests中設置了正確的代理。mitmproxy通常會運行在本地代理伺服器上(預設埠為8080),你需要在requests中指定這個代理。以下是一個設置代理的示例:
import requests
url = "https://example.com/api/endpoint"
proxies = {
"http": "http://127.0.0.1:8080",
"https": "http://127.0.0.1:8080",
}
response = requests.get(url, proxies=proxies)
請確保將代理配置為與mitmproxy相匹配。
請求頭問題:
mitmproxy可以修改請求頭,包括User-Agent等信息。確保你的Python請求與mitmproxy捕獲的請求頭相匹配,否則伺服器可能會拒絕請求。
以上完美的解決了我的問題!
優秀不夠,你是否無可替代
軟體測試交流QQ群:721256703,期待你的加入!!
歡迎關註我的微信公眾號:軟體測試君