目录
- 1. 什么是跨站请求伪造(CSRF)攻击?
- 2. 防御 CSRF 攻击的措施
- 3. 在爬虫反爬中的具体应用 - formhash
- 总结
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
1. 什么是跨站请求伪造(CSRF)攻击?
跨站请求伪造(CSRF)攻击是一种网络安全漏洞,攻击者利用用户当前已认证的会话来执行未经用户授权的操作。攻击者通过诱使受害者点击包含恶意请求的链接或访问恶意网站,从而利用受害者当前的身份验证信息(如 Cookie 或其他认证凭证)来发送未经授权的请求,比如执行转账、更改密码等操作。
CSRF 攻击的典型场景包括以下步骤:
- 受害者登录了一个网站,并且保留了登录状态。
- 攻击者诱使受害者访问包含恶意请求的页面,比如点击了带有恶意链接的邮件、访问了恶意网站等。
- 页面中的恶意请求会利用受害者当前的身份验证信息,比如 Cookie,来执行一些操作,比如发起银行转账、更改密码等。
2. 防御 CSRF 攻击的措施
- 使用随机生成的 token:在表单提交时,向表单中插入一个随机生成的 token(即 formhash 等),服务器收到请求时验证该 token 的有效性。
- 同源检测:服务器端可以检查请求的来源是否与当前网站的域名相匹配,如果不匹配则拒绝请求。
- 验证 HTTP Referer 头:服务器端可以验证请求的 HTTP Referer 头部,确保请求来自合法的来源。
- 对于网站开发者和管理员来说,保护用户免受 CSRF 攻击的影响是非常重要的。同时,用户也应当保持警惕,避免点击怀疑链接,尤其是包含个人敏感操作的链接。
3. 在爬虫反爬中的具体应用 - formhash
formhash通常用于网页中的表单提交。
在网络应用程序中,为了防止跨站请求伪造(CSRF)攻击,开发者会在表单中包含一个名为 formhash 的隐藏字段。formhash 是一个随机生成的字符串,每次表单提交时都会生成一个新的值。
在服务器端,当接收到带有 formhash 字段的表单提交请求时,开发者会验证 formhash 的值是否与当前用户会话中存储的值匹配。如果匹配成功,说明该请求是合法的,否则可能被视为 CSRF 攻击而被拒绝。
因此,formhash 的作用是增加表单提交的安全性,确保请求来自合法的来源。
需要注意的是,每个网站的实现方式可能略有不同,formhash 的名称和具体实现方式可能会因网站而异。
具体实战中应用示例[requests实战-精易论坛自动签到(保姆级图文+实现代码)]
总结
大家喜欢的话,给个👍,点个关注!给大家分享更多计算机专业学生的求学之路!
版权声明:
发现你走远了@mzh原创作品,转载必须标注原文链接
Copyright 2023 mzh
Crated:2023-3-1
欢迎关注 『python爬虫』 专栏,持续更新中
欢迎关注 『python爬虫』 专栏,持续更新中
『未完待续』