我正在尝试为我的 Firebase 应用程序提供 Google 登录。关注https://www.firebase.com/docs/security/simple-login-overview.html
似乎在成功登录后,可以获得一个用户,因此它可以例如存储在 Angular 范围内 - 例如 $scope.loggedInUser。(根据您的实现,它不一定是 Angular)
我的问题是,Firebase 返回的具有大量身份验证令牌的用户是否会被暴露是否存在安全风险?代码是 Javascript 的,黑客应该能够通过在浏览器中嵌入一些代码来劫持和窃取用户。
引起我关注的位是:accessToken、firebaseAuthToken
如果这是一个风险,我们如何保护它?
有关身份验证和用户数据,请参阅以下代码:
这是身份验证的代码:
authModule.controller( 'AuthController', [
'$scope',
'$firebase',
function ( $scope, $firebase ) {
var ref = new Firebase( 'https://test123.firebaseio.com' );
var auth = new FirebaseSimpleLogin( ref, function ( error, user ) {
if ( user ) {
$scope.loggedInUser = user; // user has authenticated, this user contains security information
}
} );
$scope.login = function () {
auth.login( "google", {
scope: 'https://www.googleapis.com/auth/plus.login'
} );
};
}] );
loggedInUser 中包含的内容(这只是示例数据):
loggedInUser: {
id: 7058267704789236427849
uid: google:7058267704789236427849
displayName: Joe Bloggs
provider: google
thirdPartyUserData: {
id: 709139364278942374
email: test@gmail.com
verified_email: true
name: Joe Bloggs
given_name: Joe
family_name: Bloggs
link: https://plus.google.com/2672340913423423
picture: https://lh3.googleusercontent.com/.../photo.jpg
gender: male
locale: en-GB
}
accessToken: W8k8dD6vvLEdlWa-dxkJD8lvWIwzea6m_86um8...
email: test@gmail.com
firebaseAuthToken: Q3Mjc4MzYsInYiOjAsImQiOnsiaWQiOiIxMDk0...
}