Что такое мелкая трансформация ключа - PullRequest
1 голос
/ 30 октября 2019

Я читал о CVE-2019-14234 Подробнее. Там упоминается о мелком преобразовании ключа. Подскажите, пожалуйста, что такое мелкая трансформация ключа. Было бы лучше, если бы кто-то мог объяснить и об этом CVE. Пожалуйста, игнорируйте это, если этот вопрос не в том месте.

1 Ответ

2 голосов
/ 30 октября 2019

Насколько я понимаю, «преобразование поверхностного ключа» относится к процессу преобразования ключа с двойным подчеркиванием, например Dog.objects.filter(data__owner__name='Bob'), в соответствующий синтаксис SQL, что-то вроде ... WHERE "data" -> 'owner' -> 'name' = 'Bob'

Уязвимость безопасности, связанная с этим CVEИмеется в виду, что вы можете создать ключ, который будет передан в базу данных, как, например:

JSONModel.objects.filter(**{
    """field__test' = '"a"') OR 1 = 1 OR ('d""": 'x',
})
...