javascript - 注册码是否可以防止跨站提交?
程序员文章站
2022-04-19 08:43:48
...
如果在用户注册和登录页面,如果设了验证码功能,是不是就可以防止跨站提交呢?
回复内容:
如果在用户注册和登录页面,如果设了验证码功能,是不是就可以防止跨站提交呢?
只要把註冊碼也複製過去就又可以跨站提交了~
csrf(跨站请求伪造)是现在危害最大的web进攻手段之一,他通过伪造一个你已经登陆并且在cookie中留下登陆记录的网站的链接(可以嵌入在img a 等标签中)从而达成一定的目的,比如你登陆了银行网银账户,那么他伪造你转帐的链接,让你点击,从而把你的money给转出去(只是举个例子啊)。
防御手法有:
- 给每一个关键操作都添加验证操作,比如验证码,或者手机短信验证等等。
- 每次请求链接一个随机token,
- 保护好你的请求参数,不要被人猜出来。
当然也有绕过方法:
- 图片验证码的话可以通过人为交互或者是破译验证码的方式 搞定。比较安全的是短信验证码了
- token的话一定要足够随机,否则被猜出来就没用了
同时不要认为只有get方法才有csrf,post也可以的,具体情况请自行查阅资料
如果验证码不对的话,本站也是没法提交的。如果跨站提交的js脚本里面给你识别了(虽然不大可能),提交肯定就可以了。目前还是比较有用的,建议是和token一起使用。
token和验证码只能解决正常用户的重复提交和频繁操作,对恶意的行为难以免疫。君不见现在各类群发和常见验证码识别技术如火如荼。