首页 > 解决方案 > 我正在开发一个网络爬虫。我收到一条警告信息。我有多脆弱?

问题描述

我正在开发一个脚本,最终将从该网站中提取数据。我收到“不安全请求警告”消息。这是一个脚本,我只会用于我自己,而不是用于商业用途。我对中间攻击的人有多脆弱?我对 SSL 几乎一无所知,并且不想在运行此脚本时将自己置于危险之中。我在问我自己运行脚本是否安全,或者我是否需要研究更好的安全措施。感谢您的帮助!

导入请求

url = 'https://midwestauction.com/'    
response = requests.get(url, verify = False)    
print(response.status_code)

标签: pythonsecuritysslpython-requests

解决方案


requests不会自动下载额外的证书,但您可以自己执行此操作,例如以下建议:https ://stackoverflow.com/a/28667850/1358308

  1. ssllabs报告说我们需要“Go Daddy Secure Certificate Authority - G2”并包括 SHA256 指纹973a4127......
  2. 搜索这个指向我们:https ://ssl-ccp.godaddy.com/repository我们可以在其中下载gdig2.crt.pem
  3. 将此添加到certifiPEM 文件中,我使用 Web 浏览器、Python 和 shell 脚本的组合来完成此操作,但您可以使用 Python 完成所有操作:
import requests
import certifi

gdig2_url = 'https://ssl-ccp.godaddy.com/repository/gdig2.crt.pem'
local_pem = 'midwestauction.pem'

with open(certifi.where(), 'rb') as fd:
    pem = fd.read()

with requests.get(gdig2_url) as res:
    res.raise_for_status()
    pem += res.content

with open(local_pem, 'wb') as fd:
    fd.write(pem)

然后你可以在 Python 中使用它:

requests.get(url, verify=local_pem)

推荐阅读