有没有办法提高我的烧瓶网站安全性?

Is there anyway to improve my flask website security?

我目前正在构建一个用于生产的网站。 但是,我确实有一些安全问题。 任何意见或建议将不胜感激!

Here is what I did so far:

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

The following code shows what I did for Token authentication. But I believe there's a better way to achieve it.

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:

再一次,如果有人能给我任何建议,或者对我用来构建应用程序的方法提供一个简短的风险评估,我真的很感激。

安全问题通常与实施的具体细节有关,与您用来部署应用程序的平台无关。 Heroku 很好,但您的应用可能不行。

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

另一件事是您的令牌验证。不清楚你从哪里得到这些 user_token,但我敢打赌你将它们存储在数据库 "as is" 中,这也不理想。您可能想考虑存储哈希值,并根据要求比较哈希值。

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

这些只是常见的做法,并不能保证您的应用程序的安全性。只有好的审计才会。