从Javascript调用API的安全方法?

时间:2016-06-17 19:30:22

标签: javascript python ajax

我正在使用flask来构建我的API。我在烧瓶前面有一个龙卷风服务器来处理请求。我在Flask中使用HTTP基本身份验证,如下所示:

auth = HTTPBasicAuth()

@auth.get_password
def get_password(username):
    if username == 'uname':
        return 'password'
    return None

这就是我从Javascript中调用API的方式:

$.ajax({
            url: api_url + 'customer',
            type: 'GET',
            dataType: 'json',
            async: false,

            headers: {
                "Authorization": "Basic " + btoa(uname + ":" + password)
            },

            data: {start: start_date, end: end_date},
            success: function(result) {
                data = result.results;
            }
         });

我意识到这不完全安全(因为前端JS文件中包含“用户名”和“密码”)所以我的问题是如何使其安全?提出API请求的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

你不能避免以这种方式发送你的密码,这没关系。您只需要对如何处理这些凭据采取合理的预防措施。确保您没有将密码保存在cookies / localStorage中。

确保unamepassword变量未硬编码到源代码中。这些应该通过表单的用户输入传递。

只要密码只在内存中,如果你保护自己免受XSS攻击,你应该是安全的。

我也强烈建议您使用HTTPS连接到服务器。