访问不需要登录的网站时CSRF检查失败是什么意思?

Moh*_*shi 3 html javascript python web-crawler request

我对网络爬行和 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
Run Code Online (Sandbox Code Playgroud)

错误:

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
Run Code Online (Sandbox Code Playgroud)

Cal*_*ite 6

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

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 requests 程序。