我目前正在建立一个供生产使用的网站。 但是,我确实对此有一些安全方面的担忧。 任何建议或建议将不胜感激!
这是我到目前为止所做的:
以下代码显示了我对令牌认证所做的工作。 但是我相信有更好的方法来实现它。
if request.method == 'POST':
token = request.headers['Authorization']
token_key = 'Token token="%s"' %(user_token)
if token != token_key:
abort(400)
print('authentication failed!',request.json)
else:
再次,如果有人可以给我任何建议,或者为我提供关于我用来构建应用程序的方法的简短风险评估,我将非常感谢。
答案 0 :(得分:1)
安全问题通常与实现的特定细节有关,而不是与用于部署应用程序的平台有关。 Heroku很好,但您的应用可能不是。
首先,您是否考虑过使用Heruku的Postgres DB?将数据库打开到互联网绝对不是一件好事。
另一件事是令牌验证。目前尚不清楚您从何处获得这些user_token
,但我敢打赌您将它们“按原样”存储在数据库中,这也不理想。您可能想考虑存储哈希,并根据要求比较哈希。
最后一件事-如果您可以通过SSH访问服务器,则最好将自己的IP列入白名单以访问它,并阻止所有其他人。
这些只是常见的用法,不能保证您应用的安全性。只有良好的审核才能实现。