защиту от иньекций. В целом это поможет, или нужно чтото дописать?
def check_str(input_string):
if "{" in input_string or "}" in input_string:
return True
sql_injection_keywords = [
"HTTPS", "SELECT", "INSERT", "UPDATE", "DELETE", "DROP", "TRUNCATE", "UNION", "OR", "AND", "EXEC", "WHERE", "FROM", "JOIN"
]
for keyword in sql_injection_keywords:
if keyword in input_string.upper():
return True
return False
А зачем ?
Зачем ты проверяешь строку на наличие инъекций?
используй параметры запросов https://t.me/advice17/10
Какой прикольный моток изоленты.
Не думаешь просто параметры нормально передавать?)
я от пользователя принимаю текст, и хочу убедится что всё ок
Инъекции — это не какая-то волшебная штука, которая просто есть и от которой надо фильтровать пользовательский ввод. Это следствие кривого форматирования запросов — игнорирования требований sql.
Я видел относительно крупные сайты где пользовательский ввод именно фильтровали
Ну, есть внешние инструменты безопасников, всякие веб-фаерволы и прочее, которые исходят из того, что разработчики — некомпетентные бараны и по каким-то своим фильтрам эвристикам пытаются отсекать запросы, которые могут быть попытками эксплуатации инъекций и при этом не имеют практической пользы для обычных пользователей. Это именно внешние веб-фаерволы и эффективность подобного несколько спорна. Реализация подобного внутри приложения — это абсурдная практика.
А если я хочу выбрать имя пользователя такое, как быть?
Земля металлом получается )
То есть минус юзер
Все уже придумали для защиты зачем велосипед?
то есть Andrey - запретный логин?) print(check_str("Andrey")) print(check_str("Boromir")) print(check_str("labor union")) для всех тру...
Escaping
Не запретный но у него есть запрещенная подстрока. >>> "AND" in "ANDREY" True
Обсуждают сегодня