【问题标题】:Getting 403 (forbidden) error on VirusTotal API在 VirusTotal API 上出现 403(禁止)错误
【发布时间】:2022-08-18 23:19:00
【问题描述】:

我试图使用 VirusTotal API 从 this 示例之后的文件中扫描 URL 运行程序时,它会在文件中返回我 <Response [403]>(禁止)。 基本上我发现的唯一一件事是我在编写我的 API 密钥时可能会出错,但我检查并仔细检查了它似乎是正确的。

你知道这可能来自哪里吗?

import requests
minute = 60
from time import sleep
file = open(\"url.txt\",\"r\") #url file contains all URLs
lines = file.readlines()
file.close()
for line in lines:
    url = \"http://\" + line[:-3] #Added that because my URLs didn\'t have http:// at the beggining and contained \"Â\" at the end because of encoding
    params = {\'apikey\': \'my_API_key\', \'url\':url} # My API key is written inside the \'\' as such \'123456\'
    response = requests.post(url, data=params)
    responsesFile = open(\"Responses.txt\",\"w\")
    responsesFile.write(str(response))
    sleep(5*minute)

提前致谢 :)

编辑:我不知道为什么上面的代码不能工作,但是使用 API V3,我发现了一个工作的代码,这里是基础

import requests
import json
import base64

headers = {\'x-apikey\': \'VT_API_KEY\'}
resource = \"https://www.lacoste.com\"
endpoint = \"https://www.virustotal.com/api/v3/urls\"
response = requests.post(endpoint, headers=headers , data = 
{\'url\':resource})

print(response.json())

analysis_id = response.json()[\'data\'][\'id\']
analysis_url = \"https://www.virustotal.com/api/v3/analyses/\" + analysis_id
response = requests.get(analysis_url, headers=headers)
response_json = response.json()
print(response_json)

希望这可以帮助你

  • 您能否调试或举一些例子url 的样子?
  • 网址在我的文本文件中看起来像这样:\"google.com\"。运行代码时,它看起来像这样“google.com”。所以我必须在开头添加\“http://\”并在测试时删除\“Â\”,我必须删除3个字符才能正常工作
  • 很可能是编码问题,添加print(url) 来验证编码问题,如果错误则需要在 open() 调用中更改编码,或者使用不同的编码写入文件。

标签: python api


【解决方案1】:

您会注意到,在有效的示例中,您在标题中包含了 api 键。在您之前的尝试中,您将 api 密钥放在发布数据中。身份验证数据几乎总是包含在标头中。

【讨论】:

  • 谢谢(你的)信息。确实更有意义 奇怪的是,在 VirusTotal 网站上的示例中包含 api-key 在帖子数据中
猜你喜欢
  • 1970-01-01
  • 2016-01-12
  • 2013-07-19
  • 1970-01-01
  • 1970-01-01
  • 2022-07-15
  • 1970-01-01
  • 1970-01-01
  • 2019-08-07
相关资源
最近更新 更多