无论如何,有什么可以改善我的烧瓶网站的安全性吗?

时间:2019-09-16 17:51:40

标签: python-3.x security heroku flask host

我目前正在建立一个供生产使用的网站。 但是,我确实对此有一些安全方面的担忧。 任何建议或建议将不胜感激!

  

这是我到目前为止所做的:

  1. 我的网络应用基于Python Flask。
  2. Heroku是我的主持人(支持https)。
  3. AWS RDS是我的后端数据库。
  4. 因为Heroku使用动态IP,所以我必须为AWS RDS打开IP限制。但是,我已经为数据库实施了SSL连接。
  5. 在我的代码中,所有敏感参数都存储为配置变量。 我用os.environ()称呼他们
  6. 此外,所有HTTP请求都必须提供我提供给客户的令牌。
  

以下代码显示了我对令牌认证所做的工作。   但是我相信有更好的方法来实现它。

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:

再次,如果有人可以给我任何建议,或者为我提供关于我用来构建应用程序的方法的简短风险评估,我将非常感谢。

1 个答案:

答案 0 :(得分:1)

安全问题通常与实现的特定细节有关,而不是与用于部署应用程序的平台有关。 Heroku很好,但您的应用可能不是。

首先,您是否考虑过使用Heruku的Postgres DB?将数据库打开到互联网绝对不是一件好事。

另一件事是令牌验证。目前尚不清楚您从何处获得这些user_token,但我敢打赌您将它们“按原样”存储在数据库中,这也不理想。您可能想考虑存储哈希,并根据要求比较哈希。

最后一件事-如果您可以通过SSH访问服务器,则最好将自己的IP列入白名单以访问它,并阻止所有其他人。

这些只是常见的用法,不能保证您应用的安全性。只有良好的审核才能实现。