我正在尝试运行一个烧瓶应用程序,我必须在用户的浏览器(localstorage)中存储敏感信息,然后再获取它。问题是,我在服务器端有敏感信息,显然localstorage只能通过Javascript在客户端访问。
所以我的问题是,根据我的情况,最好和最安全的方法是什么?
以下是我正在思考的一个例子......请告诉我这是不好的,为什么,以及这种方法的替代方案。
#This function gets the sensitive info from an AJAX request via the HTML page
@app.route("/sensitive_info/<string:sensitive_info>", methods=["POST"])
def save_sensitive_info(sensitive_info):
db.save(sensitive_info)
return redirect(url_for('inject_sensitive_info_to_local_storage'))
# This function creates an HTML page that injects the sensitive info using a javascript function with a jinja variable
@app.route("/sensitive_info")
def inject_sensitive_info_to_local_storage():
sensitive_info = [RANDOM_SENSITIVE_INFORMATION]
return render_template("index.html", sensitive_info=sensitive_info)
正如评论所描述的那样,第二个功能将敏感信息放入lcoal存储:
在html中......
localStorage.setItem('sensitive_info', {{sensitive_info}});
对于第一个函数,html页面会向我们的烧瓶发送一个Ajax发送数据:
$.ajax({url: '/sensitive_info' + localStorage.getItem("sensitive_info")), success: function (data) {console.log("Success");}});
答案 0 :(得分:0)
也许你可以使用flask会话在客户端安全地存储信息。
配置烧瓶应用时,应设置for
。存储在客户端会话中的信息是加密的,只有在您知道此密钥时才能读取。将SECRET_KEY
设置为相当长的随机数。
SECRET_KEY
然后在您的日常工作中获取您可以添加的秘密信息:
SECRET_KEY = os.urandom(24)