csrf:cross site request forgey 跨站请求伪造
根据我的理解来对csrf 防御进行阐述(很可能有不对的地方,很抱歉,希望指正)
1.当我们请求一个包含表单提交的页面时,我们就可以在 session 中 设置 key 为用户唯一标识, value为相对唯一未加密文本。
2.服务器端 将 sessionID(用户唯一标识), 加密文本(用统一的 secrey_key(密钥) 加密) 设置到客户端cookie中, 这样就可以保证,每个用户都有它的,唯一相对应的加密文本。
3.客户端读取这个cookie 中的 加密文本,放到隐藏表单域中。(我认为这一点挺重要的, 也就是说,我们就是利用了进行攻击的网站, 是无法跨站读取 cookie的, 假如攻击网站,是直接访问包含表单的页面, 但是无法对提交表单按钮 进行单击)
4.服务器端的处理很简单, 就是对提交来的加密文本通过密钥解密 与sesssion中的文本 进行比较。