有没有办法提高我的烧瓶网站安全性?
Is there anyway to improve my flask website security?
我目前正在构建一个用于生产的网站。
但是,我确实有一些安全问题。
任何意见或建议将不胜感激!
Here is what I did so far:
- 我的网络应用程序是 Python 基于 Flask 的。
- Heroku 是我的主机(支持 https)。
- AWS RDS 是我的后端数据库。
- 因为Heroku使用的是动态IP,所以我不得不为AWS RDS开启IP限制。但是,我已为数据库强制执行 SSL 连接。
- 在我的代码中,所有敏感参数都存储为配置变量。
我用 os.environ()
来称呼他们
- 此外,所有 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 列入白名单以访问它,并阻止所有其他人。
这些只是常见的做法,并不能保证您的应用程序的安全性。只有好的审计才会。
我目前正在构建一个用于生产的网站。 但是,我确实有一些安全问题。 任何意见或建议将不胜感激!
Here is what I did so far:
- 我的网络应用程序是 Python 基于 Flask 的。
- Heroku 是我的主机(支持 https)。
- AWS RDS 是我的后端数据库。
- 因为Heroku使用的是动态IP,所以我不得不为AWS RDS开启IP限制。但是,我已为数据库强制执行 SSL 连接。
- 在我的代码中,所有敏感参数都存储为配置变量。 我用 os.environ() 来称呼他们
- 此外,所有 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 列入白名单以访问它,并阻止所有其他人。
这些只是常见的做法,并不能保证您的应用程序的安全性。只有好的审计才会。