Hou*_*man 9 python rest flask flask-restful
我正在使用Flask-Restful来构建REST服务.然后,iOS设备将连接到此REST后端以同步本地数据.
该服务将通过https连接访问.
REST服务是无状态的,用户必须对每个请求进行身份验证.因此,用户名和密码将以明文格式发送到REST服务.后端将散列密码并检查数据库中的现有散列密码.
api.add_resource(Records, '/rest/records/<string:email>/<string:password>/<string:ios_sync_timestamp>')
Run Code Online (Sandbox Code Playgroud)
现在我用这种方法看到的一个问题是用户名和密码是清晰的格式,作为GET网址的一部分.服务器日志显然会跟踪这个.现在,如果我的后端被黑客入侵,日志文件将损害所有用户名和密码.
这是什么最好的解决方案?我想也许可以发送用户名和密码作为POST参数,但是如何使用GET请求呢?
class Records(Resource):
def get(self, email, password, ios_sync_timestamp):
pass
def post(self, email, password, ios_sync_timestamp):
pass
Run Code Online (Sandbox Code Playgroud)
要使用您想要的用户名和密码对每个请求进行身份验证,您应该使用:基本身份验证。
使用它非常简单,并且适用于所有 HTTP 方法(GET、POST...)。您只需要在请求中添加 HTTP 标头:
Authorization: Basic <...>
Run Code Online (Sandbox Code Playgroud)
该<...>部分username:password以 base64 编码。
例如,如果您的登录名是foo,密码是bar。HTTP 标头应包含以下行:
`Authorization: Basic Zm9vOmJhcg==`
Run Code Online (Sandbox Code Playgroud)
通过您的HTTPS连接,它是安全的。
编辑:使用 Flask,您可以使用Flask HTTP 身份验证来“自动”实现此目的。
| 归档时间: |
|
| 查看次数: |
5964 次 |
| 最近记录: |