为什么会出现csrf:一方面,用户安全意识不足,访问不知名的url。另一方面,web没有做到准确的合法用户验证。
由此产生了token,也就是令牌。以修改个人信息页面为例。每当用户访问此页面。html脚本会生成一个随机token,相当于给用户发了一个令牌。通过url中的header一并发到后端。当是这和单一的id其实并没有多大的不同,任何人都可以通过抓包伪造。所以就需要签名。通过算法,将用户id 外加token值生成一个签名。
(Token, 令牌,代表执行某些操作的权利的对象
会话令牌(Session token),交互会话中唯一身份标识符)
打开用户信息修改页面
修改后提交(submit)
并在bp中查看数据包
可以看见这一次的url中还附带了一个token值。
具体流程。
打开修改用户个人信息页面,web浏览器访问对应的php文件。
网页接受从后台发过来的token,类型不可见。将其一并提交给后台进行验证。每次刷新,后台发送过来的token都不一样。也就起到了防止伪造的作用