Javascript 如何在前端验证签名的cookie是否有效?
我正在开发一个React应用程序。我正在定义用户角色,并根据角色的权限级别限制对组件的访问。我正在寻找使用签名cookies从php后端设置权限。当我确定应用程序是否应该基于cookie中的数据呈现组件时,我如何验证cookie中的角色没有被用户重新定义,而不将cookie发送到后端 在我看来,这不是正确的方法。组件应该可以自由加载-如果组件内置了未经身份验证的用户不应该看到的东西,那么没有什么可以阻止某人进入源代码并自己发现它Javascript 如何在前端验证签名的cookie是否有效?,javascript,reactjs,cookies,Javascript,Reactjs,Cookies,我正在开发一个React应用程序。我正在定义用户角色,并根据角色的权限级别限制对组件的访问。我正在寻找使用签名cookies从php后端设置权限。当我确定应用程序是否应该基于cookie中的数据呈现组件时,我如何验证cookie中的角色没有被用户重新定义,而不将cookie发送到后端 在我看来,这不是正确的方法。组件应该可以自由加载-如果组件内置了未经身份验证的用户不应该看到的东西,那么没有什么可以阻止某人进入源代码并自己发现它 对于前端应用程序,您必须采取不同的方法-所有组件和UI都是公共的。
对于前端应用程序,您必须采取不同的方法-所有组件和UI都是公共的。当组件从服务器获取信息以显示给用户时,服务器仍将执行会话身份验证并使用4xx 401进行响应,这是一个很好的开始,组件将适当地处理该响应 在我看来,这不是正确的方法。组件应该可以自由加载-如果组件内置了未经身份验证的用户不应该看到的东西,那么没有什么可以阻止某人进入源代码并自己发现它
对于前端应用程序,您必须采取不同的方法-所有组件和UI都是公共的。当组件从服务器获取信息以显示给用户时,服务器仍将执行会话身份验证并使用4xx 401进行响应,这是一个很好的开始,组件将适当地处理该响应 如果修改cookie中的角色将允许用户获得更多权限,那么解决方案是不在客户端检查cookie的有效性。用户还可以修改客户端脚本以规避/跳过cookie的完整性检查,您将遇到与以前相同的问题
唯一正确的解决方案是,用户首先不会获得这些信息/脚本。因此,您需要在服务器端检查允许向客户端发送哪些信息,只发送允许用户查看的数据,并在执行之前在服务器端验证用户发送给服务器的所有操作。如果修改cookie中的角色将允许用户获得更多权限,然后,解决方案是不在客户端检查cookie的有效性。用户还可以修改客户端脚本以规避/跳过cookie的完整性检查,您将遇到与以前相同的问题
唯一正确的解决方案是,用户首先不会获得这些信息/脚本。因此,您需要在服务器端检查哪些信息可以发送到客户端,只发送用户可以看到的数据,并在执行之前在服务器端验证用户发送到服务器的所有操作。我不认为不呈现组件是正确的想法-我认为组件应该可以自由加载,但该组件中的内容(将从服务器获取)不会加载,因为服务器无法验证您的cookie。@TylereBastian:我建议您在回答中添加您的评论,因为这是正确的方法。我不认为不呈现该组件是正确的想法-我认为该组件应该可以自由加载,但是该组件中的内容(将从服务器获取)不会加载,因为服务器无法验证您的cookie。@TylereBastian:我建议您在回答中添加您的评论,因为这是正确的方法。