我正在研究使用webapi作为后端的SPA的安全方法。我对安全方法感到困惑。据我所知,身份验证验证用户身份。因此,提交用户名和密码并接收回令牌。然后,授权允许用户使用该令牌访问某些方法。不确定我是否有这个权利。
我的问题是,例如,允许该特定用户访问具有参数AccountNumber=1
的方法GetAccountData
。该用户应该只能看到帐号1
,而不能看到帐号2
。
如何防止用户使用Fiddler这样的程序发送相同的请求,使用他们收到的令牌,但将参数更改为AccountNumber=2
?
最重要的是,我想防止用户访问他们不应该看到的其他帐户。
如果我没有正确解释,请告诉我。
身份验证是关于说明你是谁并证明它:我是用户"quot;这是我的密码"&";。
授权是指在功能级别(用户可以调用哪些功能(和数据级别(用户可能访问哪些数据(定义访问权限。
访问控制是关于授权规则的强制执行。有时,授权和访问控制这两个术语可以互换使用。
现在回到你的问题上来。你无法阻止用户扰乱请求。您永远不应该信任传入的数据,并始终验证输入。如果用户不应该访问他请求的数据,则必须对其进行检查并拒绝请求(如果用户未通过身份验证,则使用http状态401;如果用户未经授权,则使用http状态403(。