发布到 url 时禁止 403

Posted

技术标签:

【中文标题】发布到 url 时禁止 403【英文标题】:403 forbidden when posting to a url 【发布时间】:2021-04-29 13:43:10 【问题描述】:

我正在向网站发布请求:

request = (HttpWebRequest)WebRequest.Create("https://www.footlocker.dk/api/users/carts/current/entries?timestamp=1611595223668");

request.Method = "POST";

using (var streamWriter = new StreamWriter(request.GetRequestStream()))

  string json = "\"user\":\"test\"," + "\"password\":\"bla\"";

  streamWriter.Write(json);


var httpResponse = (HttpWebResponse)request.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
  
    var result = streamReader.ReadToEnd();
  

当我提交此请求时,我收到了 403 禁止,并带有以下 html

<html>
  <head>
    <title>footlocker.dk</title>
    <style>
      #cmsganimation: A 1.5s;@keyframes A0%opacity:0;99%opacity:0;100%opacity:1;
    </style>
  </head>
  <body style="margin:0">
    <p id="cmsg">Please enable JS and disable any ad blocker</p>
    <script>
      var dd='cid':'AHrlqAAAAAMA2k9UvgFgVkIAk04eSQ==','hsh':'A55FBF4311ED6F1BF9911EB71931D5','t':'fe','r':'b','s':17434,'host':'geo.captcha-delivery.com'</script><script src="https://ct.captcha-delivery.com/c.js">
   </script>
  </body>
</html>

有没有办法让浏览器认为启用了JS?

【问题讨论】:

【参考方案1】:

你为什么要提出这个请求?根据Footlocker Terms of Service,

未经Foot Locker事先书面许可,您不得使用任何计算机代码、数据挖掘软件、“机器人”、“机器人”、“蜘蛛”、“刮刀”或其他自动设备,或程序、算法或方法具有类似的流程或功能,或任何手动流程,以监控或复制在本网站或应用程序上找到或通过本网站或应用程序访问的任何网页、数据或内容。

我假设您正试图对本网站进行未经授权的抓取/监控,我强烈建议您停止,因为这违反了上述条款和条件。

【讨论】:

感谢您指出这一点,我无意利用它,这对我来说只是一个概念证明,我会说仅用于教育用途。但是我尊重你的评论,如果你不想帮助我,我也理解。问候!【参考方案2】:

也许尝试指定一个用户代理。

【讨论】:

以上是关于发布到 url 时禁止 403的主要内容,如果未能解决你的问题,请参考以下文章

使用签名 URL 上传到 S3 时出现 403(禁止)

使用预签名 URL 上传到 S3 存储桶会出现 403 禁止错误

Django 403 禁止错误

如何允许获取请求 - 403 禁止错误

AWS S3 getSignedUrl() 返回 403 禁止错误

403 禁止错误