我正在使用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请求的正确方法是什么?
答案 0 :(得分:1)
你不能避免以这种方式发送你的密码,这没关系。您只需要对如何处理这些凭据采取合理的预防措施。确保您没有将密码保存在cookies / localStorage中。
确保uname
和password
变量未硬编码到源代码中。这些应该通过表单的用户输入传递。
只要密码只在内存中,如果你保护自己免受XSS攻击,你应该是安全的。
我也强烈建议您使用HTTPS连接到服务器。