全系统范围内阻止特定的 API 请求

全系统范围内阻止特定的 API 请求

我想在系统范围内阻止对 Graph API 的请求,该请求从使用此 URL 的 Graph 获取个人资料图像:

https://tasks.office.com/COMPANY.onmicrosoft.com/GraphApiV1/GetUserPhotoAsync

我已经用 uBlock Origin 对其进行了测试,它遵循以下规则:

||tasks.office.com/COMPANY.onmicrosoft.com/GraphApiV1/GetUserPhotoAsync?

缺点是它只能在单个浏览器中运行,并且我无法在 Teams 或其他应用程序中阻止个人资料图像。

因此,我以为我将这个地址添加到我的 ESET 的 Web 和电子邮件阻止列表中,如下所示,但它不起作用。图像仍然加载。我尝试了各种模式,如下所示:

https://tasks.office.com/COMPANY.onmicrosoft.com/GraphApiV1/GetUserPhotoAsync
https://tasks.office.com/COMPANY.onmicrosoft.com/GraphApiV1/GetUserPhotoAsync?
https://tasks.office.com/COMPANY.onmicrosoft.com/GraphApiV1/GetUserPhotoAsync?*
*.office.com/COMPANY.onmicrosoft.com/GraphApiV1/GetUserPhotoAsync?*

我还可以尝试什么?

答案1

实现此目的的唯一方法是对您正在运行的软件进行中间人攻击。否则,您无法过滤特定的请求路径。从抽象层面上讲,您需要以下内容:

  • 可以进行 HTTPS 拦截的代理(也可能是您想要的过滤)
  • 证书颁发机构 (CA)...
    • 你的软件必须信任
    • 代理将用来为拦截的连接颁发证书

请注意安全至关重要您的 CA 私钥必须保密。否则,当有人获得此密钥时,您就真的容易受到 MITM 攻击。


一个流行的 Web 过滤代理是普罗维西。根据其文档,它可以进行 HTTPS 检查。手动的描述以下相关的配置选项:

  • ca-directory
  • ca-cert-file
  • ca-key-file
  • ca-password
  • certificate-directory
  • trusted-cas-file(这个很重要)

此外,https-inspection行动需要为特定网站启用:

{+https-inspection}
tasks.office.com

相关内容