Сейчас я нахожусь в процессе написания диссертации на степень бакалавра и для нее создаю систему баз данных с Postgres и Flask. Чтобы обеспечить безопасность моих данных, я работал над файлом, чтобы предотвратить инъекции SQL, поскольку пользователь должен иметь возможность отправить строку с помощью запроса Http. Поскольку большинство моих функций, которые я использую для анализа запроса Http, используют в запросе Kwargs и dict, основанный на JSON, мне было интересно, возможно ли ввести код python в эти kwargs. И если так, если есть способы предотвратить это.
Чтобы было проще понять, что я имею в виду, вот несколько примеров запросов и код:
def calc_sum(a, b):
c = a + b
return c
@app.route(/<target:string>/<value:string>)
def handle_request(target,value):
if target == 'calc_sum':
cmd = json.loads(value)
calc_sum(**cmd)
Пример запроса:
Normal : localhost:5000/calc_sum/{"a":1, "b":2}
Injected : localhost:5000/calc_sum/{"a":1, "b:2 ): print("ham") def new_sum(a=1, b=2):return a+b":2 }
Поскольку я не рядом с моей работой, где весь мой код, я не могу проверить его. И, честно говоря, мой пример кода будет работать. Но я надеюсь, что это может передать то, что я имел в виду.
Надеюсь, вы поможете мне или, по крайней мере, подтолкнете меня в правильном направлении. Я искал его, но все, что я могу найти, - это учебники о том, «кому использовать kwargs».
С уважением.