在不需要登录的网站上进行CSRF检查失败是什么?

时间:2019-07-16 00:57:37

标签: javascript python html request web-crawler

我是网络爬虫和HTML的新手。我正在尝试获取该网站的内容: https://services.ecourts.gov.in/ecourtindiaHC/cases/s_orderdate.php?state_cd=24&dist_cd=1&court_code=1&stateNm=Sikkim 但是出现了一些错误。

session = requests.Session()
path = 
'https://services.ecourts.gov.in/ecourtindiaHC/cases/s_orderdate.php? 
 state_cd=24&dist_cd=1&court_code=1&stateNm=Sikkim'
 r2n = session.post(path)
 r2n.content

错误:

<html>
  <head>
    <title>CSRF check failed</title>
    <script type="text/javascript">var csrfMagicToken = "sid:c5118ae8a9e61592d303891cc2cd269c204972a8,1563237610";var csrfMagicName = "__csrf_magic";</script><script src="csrf-magic.js" type="text/javascript"></script>
  </head>
  <body>
    CSRF check failed. Please enable cookies.<br />Debug: <script type="text/javascript">CsrfMagic.end();</script>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

CSRF阻止用户使用相同的令牌从自己在网站上的会话之外进行请求。您可能正在提交某种形式的令牌,该令牌是在浏览器会话中生成的,然后从另一台设备发出请求。有关CSRF here的更多信息。

  

CSRF是一种攻击,诱骗受害者提交恶意请求。它继承了受害者的身份和特权,可以代表受害者执行不希望的功能。对于大多数站点,浏览器请求将自动包括与该站点相关联的任何凭据,例如用户的会话cookie,IP地址,Windows域凭据等。因此,如果用户当前已通过该站点的身份验证,则该站点将无法区分受害者发送的伪造请求和受害者发送的合法请求。

从本质上讲,它认为您的请求是一个恶意软件,诱使您从计算机拨打电话。

鉴于错误消息:CSRF check failed. Please enable cookies.,我认为此令牌存储在cookie中。这是我如何解决这个问题的方法:

  1. 打开chrome开发者控制台
  2. 打开网络标签
  3. 重新加载页面
  4. 右键单击主页的请求
  5. 鼠标单击“复制”,然后在侧面的下拉菜单中选择“复制为cURL”
  6. 转到https://curl.trillworks.com,然后通过cURL命令进入以获取将发出相同请求的python请求程序。