• Почему не стоит использовать f строки в SQL Python запросах?

    ma4akk
    @ma4akk
    Использование f строки в SQL запросах может быть небезопасно, потому что оно позволяет вставлять значения переменных непосредственно в SQL запрос. Это может привести к SQL injection - атаке, когда злоумышленник вводит в запрос подозрительные данные, чтобы получить доступ к базе данных или внести в нее изменения.

    Чтобы избежать этой проблемы, рекомендуется использовать параметризированные запросы. Это значит, что значения переменных не вставляются непосредственно в запрос, а передаются отдельно как параметры. В SQLite это можно сделать с помощью вопросительного знака (?) вместо значения переменной:

    connect = sqlite3.connect('INFO.db')
    cursor = connect.cursor()
    
    GLAV_USER = message.from_user.id
    cursor.execute("SELECT ID FROM table WHERE MEMBER = ?", (GLAV_USER,))


    Такой подход более безопасен и предотвращает возможность SQL инъекцй.
    Ответ написан
    2 комментария