在企业微信扫码登录中有一个参数叫state, 看了解释没看懂, 解释如下:
用于保持请求和回调的状态,授权请求后原样带回给企业。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议企业带上该参数,可设置为简单的随机数加session进行校验
想问下这个参数是如何发挥作用去防止CSRF攻击的, 是怎样的一个具体的使用流程, 如: 展示二维码之前state从服务器拿, 用户扫码之后, 然后重定向到redirect_uri, state会跟着发送到服务器, 服务器再验证这个state值是否和刚才一致, 这么一个流程,
这个比如的流程只是一个假设,
你好,展示二维码之前state从服务器拿, 用户扫码之后, 然后重定向到redirect_uri, state会跟着发送到服务器, 服务器再验证这个state值是否和刚才一致, 这么一个流程,是的,流程基本是这样
看意思就是确定回调的请求是否是企业自己触发的,如果是企业自己触发的就可以校验state字段是否存在,如果不存在,说明不是企业自己触发,可以拒绝掉本次请求,如果和企业自己保存的state字段的一致,就说明本次回调是企业自己触发的。state字段应该要用没有规律的随机字符来生成,这样才能有更好的防止csrf攻击的效果。