Я установил API-интерфейс для минимальной колбы ( Видно ) в облачном экземпляре.
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
todos = {}
class TodoSimple(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(TodoSimple, '/<string:todo_id>')
if __name__ == '__main__':
app.run(debug=True)
Я внес несколько изменений в это, чтобы сделать вещи более безопасными и обеспечитьфункциональность:
- Я добавил шифрование AES 128 к данным, поступающим и выходящим с запросами POST.Я не использую почтовые запросы ни для чего.
- Входящие URL-адреса теперь также имеют http: www.xxx.xxx.xxx/api? IV = RandomInitVector & Hash = fe973fc79c93704abd153c7f231e4187.Хэш предназначен для проверки подлинности вектора инициализации, а IV используется для расшифровки зашифрованных данных AES.
- Я использую свой локальный ip
app.run(host="0.0.0.0",port="80",debug=True)
- I После расшифровки данных у меня естьфайл JSON, с которым я работаю, чтобы определить ответ.Я веду журнал запросов в фрейме данных pandas.
IV является случайным, который защищает от атак воспроизведения.Он также уникален, поэтому используется как одноразовый номер для предотвращения случайной отправки запроса несколько раз.Закрытый ключ используется для шифрования данных и также используется как личный ключ для хеширования IV.IV и закрытые ключи генерируются с помощью доверенного модуля Python Pycrypto.Есть ли какие-либо явные уязвимости с этой настройкой?