dim5x / Alerter

Орёт при недозволенных подключениях.
https://dim5x.github.io/Alerter/index.html
The Unlicense
3 stars 0 forks source link

Possible SQL injection vector through string-based query construction. #75

Open dim5x opened 4 years ago

dim5x commented 4 years ago

Describe the bug

    • [ ] query = 'select count(1) _count from [admin] where [login] = %(login)s' % {'login': login}
    • [ ] ''' % {'login': login, 'description': description}
    • [ ] ''' % {'login': login}
    • [ ] ''' % {'login': login, 'hash': hash_sha384}
-Важно!

Никогда, ни при каких условиях, не используйте конкатенацию строк (+) или интерполяцию параметра в строке (%) для передачи переменных в SQL запрос. Такое формирование запроса, при возможности попадания в него пользовательских данных – это ворота для SQL-инъекций!

Правильный способ – использование второго аргумента метода .execute()

Возможны два варианта:

  1. C подстановкой по порядку на места знаков вопросов: cursor.execute("SELECT Name FROM Artist ORDER BY Name LIMIT ?", ('2'))

  2. И с использованием именованных замен: cursor.execute("SELECT Name from Artist ORDER BY Name LIMIT :limit", {"limit": 3})