我想知道"注入",包括javascript注入(我不理解它的规则)。
如果我有一个javascript函数,它发出AJAX请求来查找用户的权限级别,然后我用If语句检查该级别以分配权限,那么这容易受到攻击吗?
Javascript
function checkPermission(){
$.post('user.php', userId, function(data){
return data.permission;
});
}
var = permission = checkPermission();
if (permission === 2){
// User has admin powers
}
有人能在代码中读到这一点并简单地将变量"permission"更改为2,从而拥有管理员访问权限吗?
谢谢。
是的,它很容易受到攻击,因为javascript在客户端运行,用户可以通过浏览器更改userID值。
这样的事情不应该依赖客户端数据。您至少需要在用户服务器端登录时对其进行身份验证,然后创建一个会话来保存其用户ID等。通过这种方式,您可以依赖服务器端会话数据,而用户将无法操作这些数据。
编辑:
此外,在您的示例中,用户也可以更改权限变量的值。同样,验证检查不应该留给客户端代码。