Php 数据库还是会话?在哪里存放代币
令牌是防止csrf攻击的绝佳工具 对于用户发出的每个请求,您的系统必须生成一个唯一的令牌并将其存储在某处 下次客户端请求执行某些操作时,系统将验证令牌是否存在,以及它是否仍然有效 如果我们将令牌存储在会话中,那么会话将变得太大,这将消耗大量内存,因为CPU在响应请求时将整个会话加载到ram中,例如,如果CPU为1Gb,1000个用户每个会话为1Mb,CPU将无法处理任何事情,这可能是典型的ddos攻击(请求越来越多的令牌,知道它们存储在会话中) 另一方面,在数据库中存储令牌有其自身的弱点Php 数据库还是会话?在哪里存放代币,php,token,Php,Token,令牌是防止csrf攻击的绝佳工具 对于用户发出的每个请求,您的系统必须生成一个唯一的令牌并将其存储在某处 下次客户端请求执行某些操作时,系统将验证令牌是否存在,以及它是否仍然有效 如果我们将令牌存储在会话中,那么会话将变得太大,这将消耗大量内存,因为CPU在响应请求时将整个会话加载到ram中,例如,如果CPU为1Gb,1000个用户每个会话为1Mb,CPU将无法处理任何事情,这可能是典型的ddos攻击(请求越来越多的令牌,知道它们存储在会话中) 另一方面,在数据库中存储令牌有其自身的弱点 您使用
您使用哪种方法存储令牌?使用会话,每个会话1MB的容量在我看来相当高。由于PHP的会话处理程序可以切换到不同的后端,因此您可以灵活地将它们存储在磁盘/memcached/mysql上。每个会话允许一个用户一个令牌的最大数量是多少,请参阅Sure、 尽管您应该让它们过期或定期重新生成,但请确保测试无效令牌不会导致用户的表单状态丢失。