微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用令牌保护 chrome 扩展 API 调用

如何解决使用令牌保护 chrome 扩展 API 调用

我正在尝试保护从我的 chrome 扩展程序到我在 AWS 上托管的网站的 API 调用。到目前为止,我发布的 SO 帖子已经过时且无效。到目前为止,我发现的最新和最好的教程来自 Very Good Software,它需要通过以下方式获取用户的 google OAuth 访问令牌:

背景.js:

chrome.identity.getAuthToken({ 'interactive': true },function(token) {
  if (token){alert('token is ' + token)}
  else{alert('token not present')}
});

manifest.json

{
    "manifest_version": 2,"name": "To be named","description": "This extension helps...","version": "0.1.0","browser_action":{
        "default_popup":"popup.html"
    },"permissions": [
        "storage","identity","identity.email","http://127.0.0.1:5000/Time"
    ],"oauth2":{
        "client_id":"1097711......apps.googleusercontent.com","scopes":["https://www.googleapis.com/auth/userinfo.profile"]
    },"background": {
        "scripts": ["background.js"],"persistent": false
    },"content_scripts": [{
        "matches": ["https://www.blank.org/"],"js": ["content.js"],"css": ["styles.css"]
    }]
}

access_token 被传递到您的服务器以便您的服务器通过以下方式解密:

@blueprint.route('/verification') 
def verification():
    from firebase_admin import auth,credentials   
    import firebase_admin

    cred = credentials.Certificate("Firebase.json")
    firebase_admin.initialize_app(cred)
    decoded_token = auth.verify_id_token("ya29.a0AfH6...AY")
    uid = decoded_token['uid']
    print(uid)
    return str(uid)

生成令牌时,我意识到 firebase-sdk 需要一个 verify_id 而不是访问令牌。因此,我想知道这种方式是否可以更正以用于保护带有 chrome 扩展的 API 调用? 如果不是,到目前为止,保护来自 chrome 扩展的 API 调用的最新和最佳方法是什么?鉴于可以查看源代码

此外,我认为我无法发布访问令牌并查看它是否与我的服务器登录用户访问令牌匹配,因为我相信它们每次都会更改。

此外,速率限制对我的问题根本没有帮助,因为服务是个人的,不能共享,如果攻击者要闯入,它只需要几个电话就可以发动恶意攻击。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。