我想知道以下方法是否会完全阻止CSRF,并与所有用户兼容.
这里是:
在表单中只包含一个额外的参数:encrypted(user's userID + request time).服务器端只是解密并确保它是正确的用户ID,并且请求时间是合理的近期.
encrypted(user's userID + request time)
除了嗅探用户流量或破坏加密的人,这是完全安全的吗?有什么缺点吗?
虽然您的方法是安全的,但它不是标准的.防止CSRF攻击的标准方法是生成包含在隐藏字段和cookie中的伪随机数,然后在服务器端验证两个值是否匹配.看看这篇文章.