使用请求安全处理潜在的恶意网址

时间:2019-07-31 20:32:14

标签: python python-requests phishing

我正在构建一个用于分析电子邮件的工具,以尝试确定它们是否为网络钓鱼,并且我想查看电子邮件中的任何链接是否重定向,以及它们是否执行了多少次以及到何处。我当前正在使用请求库来处理所有这些内容,并且为了获取链接的历史记录,您必须调用.get()。这样可以对潜在的恶意URL进行安全处理吗?如果没有,是否可以以任何方式获取重定向信息而又不会使我的计算机受到威胁?

1 个答案:

答案 0 :(得分:3)

您可以使用allow_redirects=True发送HEAD请求:

>>> url = "http://stackoverflow.com/q/57298432/7954504"
>>> resp = requests.request(
...     "HEAD",
...     url,
...     allow_redirects=True
... )
>>> resp.history
[<Response [301]>, <Response [302]>]
>>> [i.url for i in resp.history]
['http://stackoverflow.com/q/57298432/7954504', 'https://stackoverflow.com/q/57298432/7954504']

并不是说这是万灵药。要考虑的另一件事是本着“当您看到一个URL时便会看到一个cr脚的URL”的精神在URL本身上添加一些启发式方法。 (我喜欢使用yarl分析URL。)例如:

  • 什么是文件扩展名?
  • URl是否使用非标准端口?
  • 该域是IPv4 / 6地址还是本地主机?
  • 任何查询参数值本身是否都是有效的URL?

...等等。

相关问题