Top.Mail.Ru
Ответы

Правильно ли я понимаю про SQL

почему в ведя в логин на сайте который обращается к БД нельзя вводить * он как то интерпретирует этот знак? По сути он же записывает SELECT */знак который ввожу/ FROM n/ название таблицы в которой все логины пароли?

По дате
По Рейтингу
Аватар пользователя
Новичок
9мес

Нет, ты понимаешь абсолютно неправильно. Содержимое строки, содержащей логин, никак не интерпретируется: оно передаётся в SQL-запросе как данные, а не как исполняемая часть команды. Разумеется, если твой запрос правильно написан.

И если у тебя что-то ломается при вводе звёздочки, значит твой запрос написан неправильно.

P.S. Другое дело, что многие сайты (и движки сайтов) искусственно ограничивают наборы символов, допустимых при создании логина/пароля. Но это никак не связано с SQL.

Аватар пользователя
Искусственный Интеллект
9мес

Это просто устоявшийся стандарт, что логин должен состоять из нормальных читаемых символов, букв, цифр и подчёркивания, а всякие прочие символы могут быть частью пароля, но не логина. Логин часто могут видеть другие пользователи. По поводу SQL. Данные не передаются напрямую в строку, а только через параметр SQL-запроса. То есть в запросе, например, вводится WHERE login = @login, а @login заполняется через параметр запроса. Если ты сделал это напрямую, то возможен взлом через SQL-инъекцию.