【问题标题】:Angular using cookiesAngular 使用 cookie
【发布时间】:2016-11-11 09:31:27
【问题描述】:

我目前正在使用 AngularJS 开发 Web 应用程序,我对登录系统有以下疑问:存储用于登录 cookie 的用户名等信息是否安全?

我的意思是,当我登录时,我想将相同的用户名或 ID 存储到 cookie 中,这样每次用户在不同链接之间导航时,我都可以从数据库中加载更多信息。问题是我不知道 Angular 是否对 cookie 版本有任何保护,或者换句话说,我应该相信这个 cookie 的值是正确的吗?

比如有这段代码,安全吗?

    var request = {
        url: 'backend/getCharacters.php?user=' + $cookies.get('username'),
        method: 'GET'
    };

    $http(request).then(function(response) {
        if(response.status == 200)
            // Get character list
        else
            alert('Something went wrong.');
    });

【问题讨论】:

  • 没有。我会加密一些你可以识别用户的东西,或者生成一个令牌并检查用户的价值和身份。如果您只是将 ID 存储为 cookie,则可以轻松地将其修改为用户想要的任何 ID。
  • IMO 使用 cookie 来查找用户特定数据是不安全的,用户可以轻松修改 cookie,然后您的应用程序将获取其他人的数据。如果我是您,我会在您的服务器上使用密钥向 id 添加一些散列,这样当客户端请求数据时,服务器会解密散列并使用正确的 ID 进行查询。如果他们更改了哈希,那么它在服务器上将是无效的,并且不会返回任何数据
  • 检查答案。告诉我它是否有效

标签: angularjs security cookies


【解决方案1】:

你应该在你的函数中声明ngCookies。您可以查看以下示例以了解有关在 angularjs 中使用 cookie 的更多信息。我希望你会喜欢这些资源。

使用此代码。我希望它对你有用。

angular.module('myApp', ['ngCookies']);
function CookieCtrl($scope, $cookieStore) {
  var tabname = [{'KaluSingh'}];  // tabname contains username
  $cookieStore.put('username', tabName);
  };
 var request = {
    url: 'backend/getCharacters.php?user=' + $cookies.get('username'),
    method: 'GET'
};

$http(request).then(function(response) {
    if(response.status == 200)
        // Get character list
    else
        alert('Something went wrong.');
});

stackoverflow.com/questions/10961963/how-to-access-cookies-in-angularjs

https://docs.angularjs.org/api/ngCookies/service/$cookies

https://docs.angularjs.org/api/ngCookies

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-25
    • 2020-03-29
    • 1970-01-01
    • 2019-03-26
    • 2013-10-06
    • 2018-01-24
    • 2023-03-07
    • 2014-11-20
    相关资源
    最近更新 更多