diff --git a/static/index.css b/static/index.css index 9034c3a..87171b2 100644 --- a/static/index.css +++ b/static/index.css @@ -10,6 +10,11 @@ #popup { display: none; + overflow-y: auto; +} + +::-webkit-scrollbar { + display: none; } .inpt { diff --git a/templates/sql-injection.html b/templates/sql-injection.html index a747460..7621e88 100644 --- a/templates/sql-injection.html +++ b/templates/sql-injection.html @@ -3,20 +3,18 @@ {% block content %}
SQL-инъекция - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.
-
Как именно это работает? Все дело в том, что данные, которые ввёл пользователь, вставляются в запрос напрямую (пример кода с сервера ниже)
-#Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
+ SQL-инъекция - уязвимость системы, позволяющая пользователю ввести вредоносный код в SQL-запрос.
+
Как именно это работает? Все дело в том, что данные, которые ввёл пользователь, вставляются в запрос напрямую (пример кода с сервера ниже)
+ #Как же это работает на сервере?(не стоит так делать, иначе ваш код будет иметь ту же уязвимость)
login = request.form['login'] # Получаем данные из окна с логином, которые пользователь ввёл в форму
password = request.form['pass'] # Так же получаем данные из окна с паролем
cursor = get_db().cursor() # Получение доступа к базе данных
cursor.execute(f'SELECT * FROM Users WHERE login == "{login}" AND password == "{password}"') # Вставляем в запрос данные от пользователя
- Так в место того, чтобы вводить свои данные, можно ввести определённые команды (как правило - вредоносные)
- Вводим в соответствующее поле предполагаемый логин админа - admin, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками ";--.
- Если мы введём admin";-- в поле логин, то наш запрос на сервер отправится вот так:
- cursor.execute(f'SELECT * FROM Users WHERE login == "admin";--" AND password == "{password}"')
- Вы успешно вошли под логином admin. скрыть
-
Так в место того, чтобы вводить свои данные, можно ввести определённые команды (как правило - вредоносные) + Вводим в соответствующее поле предполагаемый логин админа - admin, а часть кода с проверкой пароля, которая идёт после проверки логина, просто закомментируем знаками ";--. + Если мы введём admin";-- в поле логин, то наш запрос на сервер отправится вот так:
+cursor.execute(f'SELECT * FROM Users WHERE login == "admin";--" AND password == "{password}"')
+ Вы успешно вошли под логином admin. скрыть