Безопасен ли минимальный API Flask Restful с шифрованием данных? - PullRequest
0 голосов
/ 11 июля 2019

Я установил 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)

Я внес несколько изменений в это, чтобы сделать вещи более безопасными и обеспечитьфункциональность:

  1. Я добавил шифрование AES 128 к данным, поступающим и выходящим с запросами POST.Я не использую почтовые запросы ни для чего.
  2. Входящие URL-адреса теперь также имеют http: www.xxx.xxx.xxx/api? IV = RandomInitVector & Hash = fe973fc79c93704abd153c7f231e4187.Хэш предназначен для проверки подлинности вектора инициализации, а IV используется для расшифровки зашифрованных данных AES.
  3. Я использую свой локальный ip app.run(host="0.0.0.0",port="80",debug=True)
  4. I После расшифровки данных у меня естьфайл JSON, с которым я работаю, чтобы определить ответ.Я веду журнал запросов в фрейме данных pandas.

IV является случайным, который защищает от атак воспроизведения.Он также уникален, поэтому используется как одноразовый номер для предотвращения случайной отправки запроса несколько раз.Закрытый ключ используется для шифрования данных и также используется как личный ключ для хеширования IV.IV и закрытые ключи генерируются с помощью доверенного модуля Python Pycrypto.Есть ли какие-либо явные уязвимости с этой настройкой?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...