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



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

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

  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:

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

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

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

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

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

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

最新更新