我正在使用Flask-Restful来构建 REST 服务。然后,iOS 设备将连接到此 REST 后端以同步本地数据。
该服务将通过https连接访问。
REST 服务是无状态的,用户必须对每个请求进行身份验证。因此,用户名和密码将以明文格式发送到 REST 服务。后端将散列密码并检查数据库中现有的散列密码。
api.add_resource(Records, '/rest/records/<string:email>/<string:password>/<string:ios_sync_timestamp>')
现在我用这种方法看到的一个问题是用户名和密码作为 GET url 的一部分采用了清晰的格式。服务器日志显然会跟踪这一点。现在,如果我的后端被黑客入侵,日志文件将危及所有用户名和密码。
什么是最好的解决方案?我在想也许可以将用户名和密码作为 POST 参数发送,但是那我该如何处理 GET 请求呢?
class Records(Resource):
def get(self, email, password, ios_sync_timestamp):
pass
def post(self, email, password, ios_sync_timestamp):
pass