Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

jaDex Game Ргий Профи (954), закрыт 2 месяца назад
почему в ведя в логин на сайте который обращается к БД нельзя вводить * он как то интерпретирует этот знак? По сути он же записывает SELECT */знак который ввожу/ FROM n/ название таблицы в которой все логины пароли?
Лучший ответ
Андрей Высший разум (464982) 3 месяца назад
Нет, ты понимаешь абсолютно неправильно. Содержимое строки, содержащей логин, никак не интерпретируется: оно передаётся в SQL-запросе как данные, а не как исполняемая часть команды. Разумеется, если твой запрос правильно написан.

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

P.S. Другое дело, что многие сайты (и движки сайтов) искусственно ограничивают наборы символов, допустимых при создании логина/пароля. Но это никак не связано с SQL.
Остальные ответы
Максим Искусственный Интеллект (214438) 3 месяца назад
Это просто устоявшийся стандарт, что логин должен состоять из нормальных читаемых символов, букв, цифр и подчёркивания, а всякие прочие символы могут быть частью пароля, но не логина. Логин часто могут видеть другие пользователи. По поводу SQL. Данные не передаются напрямую в строку, а только через параметр SQL-запроса. То есть в запросе, например, вводится WHERE login = @login, а @login заполняется через параметр запроса. Если ты сделал это напрямую, то возможен взлом через SQL-инъекцию.
Оракул (50000) 3 месяца назад
 привет 
можешь проверить❔❔
у тебя
также
покажет
работу css

вот на ютуб плеере
скругление
и
внизу всякая всячина
на этом сайте

r926440z.bget.ru/www/upload/2024/09/02/yumor/

а вот видео





https://my.mail.ru/video/embed/5453006133880946873


 там
на том
сайте
как раз
и крестики нолики
тоже есть

ты мне тогда
помог

работают они
Максим Искусственный Интеллект (214438) ⚠, да, так же.
Pavel PavlovПрофи (576) 3 месяца назад
А вообще при проверке логина и пароля действительно нужно избавляться от нежелательных символов, дабы исключить sql инъекции ради взлома сайта...
Для этого либо убирать лишние символы, либо в строку sql запроса подставлять по параметру то, что вводит пользователь. А лучше и то и другое и еще что-нить придумать... :)
Максим Искусственный Интеллект (214438) Pavel Pavlov, для пароля убирать символы нежелательно, потому что в пароле могут использоваться различные символы для безопасности, в том числе очень редкие и неиспользуемые. Я против этого, тем более при правильных запросах никакие инъекции невозможны для каких угодно символов.
Pavel PavlovПрофи (576) 3 месяца назад
Если в базе будет храниться хэш пароля, то без разницы, что вы будете убирать из пароля. Главное, чтоб это "убирание" было во всех местах, где всплывает хэширование пароля...
Pavel PavlovПрофи (576) 3 месяца назад
Хотя да, признаЮ, что действительно нежелательно что-либо убирать. Но при запросе в базу нужно экранировать всякие звездочки, кавычки и апострофы... Чтоб они не могли повлиять на sql запрос ни в каком виде.
Максим Искусственный Интеллект (214438) Неважно, что в базе хранится хэш пароля. Для ввода всё равно потребуется ввести правильный пароль и лучше, если пользователь использует различные символы, нежели просто буквы и цифры. Буквы и цифры без символов нынче вообще не считается адекватным паролем, убирать оттуда символы сегодня это маразм. А чтобы нельзя было повлиять на SQL-запрос, нужно всего навсего правильно с ним работать, то есть использовать параметры. И тогда туда можно писать всё что душе угодно.
Похожие вопросы