我正在使用AngularJS开发客户端应用程序。我需要从服务器端请求一些与授权相关的数据并存储它以用于访问控制决策。我不想在每次决定之前请求数据。
我尝试使用浏览器本地存储,但我发现它可以在浏览器中编辑,这在我的情况下是不可接受的。我还考虑过加密授权数据,但只要加密是在客户端完成的,就可以进行逆向工程。
是否有安全(只读)存储可以保存授权数据以适应我的情况?
答案 0 :(得分:1)
您将数据发送到客户端,这是您无法控制的环境。您最多可以做什么使他们不方便修改它。
让它无法修改?你不能这样做。 (抽象地思考问题:你要做的是禁止用户在自己的设备上进行一些操作。)
这就是为什么所有类型的安全相关功能都需要留在后端(控制环境),或者至少包含后端组件。
在您的特定情况下,考虑将客户端上的查看权限作为可用性功能处理:您不希望将用户定向到他们不应该看到的页面,但后端只负责服务实际上允许他们访问的数据。因此,如果你有一个恶意用户“他不应该去的地方”,那么后端将不向他们发送他不应该看到的数据。