跨站请求伪造***,简称CSRF(Cross-site request forgery),CSRF通过伪装来自受信任用户的请求实现***
CSRF的原理
CSRF主要是通过诱骗已经授权的用户执行***者想要的操作
例如
(1)用户已经登录了网站的管理后台,处于登录有效期内
(2)***者制作了一个页面,里面有提交表单的操作,这个表单就是模拟管理后台添加管理员的操作
示例代码
(3)***者把这个页面的链接和诱骗信息发送给用户,诱使用户点击链接,如果用户点击,***成功,***者就可以用新建的管理员登录系统进行任意操作了
上面的例子是***者添加管理员,实际可以做任何操作,只要***者对目标系统足够了解,他就可以模拟出他想要的操作,例如删除用户、删除文章、添加文章……
CSRF的防范措施
CSRF的防范主要有两种方式:验证码、token
(1)验证码
对后台的敏感操作页面添加验证码,执行此操作时,需要人工填写验证码,这样,模拟的表单就无法成功提交了,缺憾就是操作人员会稍麻烦些
(2)token
打开操作页面时,服务器端生成一个动态token值,在服务器端保留一份,在操作页面的表单中添加一个隐藏域,保存此token值,表单提交后,服务器程序获取token值和服务器保留的那份进行对比,值不同的话就不执行
token是服务器动态生成的,***者就有无法猜到,模拟的表单自然无法正常提交执行