Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 12385|Отговор: 0

[Комуникация] 2011 MSSQL изявление за валидиране на парола, урок за уязвимост в сигурността

[Копирай линк]
Публикувано в 26.11.2014 г. 15:47:51 ч. | | |
Като международно стандартно изявление за заявки в база данни, SQL операторите са широко използвани в различни програмни среди. Като зряла и стабилна система, потребителските логини и верификация на пароли са от съществено значение. В ежедневната си програмна работа установих, че много програмисти използват SQL оператори, за да проверят паролите на потребителите чрез едно изявление като това:
sql="Изберете * от потребителската таблица, където name='"+name+"' и password='"+password+"'"
Името и паролата са потребителските имена и паролите, въведени от потребителя, а горните изказвания се изпълняват, за да се провери дали потребителят и паролата са легитимни и валидни. Въпреки това, чрез анализ може да се установи, че в горните твърдения има фатални вратички. Когато въведем следния низ в потребителското име: 111'or'1=1, след което въвеждаме паролата небрежно, я задаваме на aaaaa. След като променливата бъде заменена, SQL операторът става следният низ:
sql="Изберете * от потребителска таблица, където name='111'or'1=1' и password='aaaa'
Всички знаем, че когато изказването select оценява условията на заявката, то игнорира следните и (и) операции при среща с операции или (или), а стойността 1=1 в горното твърдение винаги е вярна, което означава, че независимо каква стойност е въведена в паролата, тя може да премине горната проверка на паролата! Решението на този проблем е много просто и има много методи, като най-често използваният е да се прецени легитимността на потребителя и паролата, въведени от потребителя, преди извършване на проверка, а специални знаци като единични кавички и равни знаци не са позволени.
Горните проблеми, макар и да изглеждат прости, съществуват. Например, ранната версия на известната онлайн игра "Smiling Proud Jianghu" в интернет имаше такъв проблем, а авторът също така внимателно анализира някои от програмите, които беше написал преди, след като прочете доклада за уязвимостта на тази игра, и имаше много такива вратички. Това наистина трябва да бъде нашето внимание. Това също така разкрива липсата на опит в програмирането и осведомеността за сигурността на младите програмисти, включително и автора. В същото време това ни напомня, че програмистите трябва напълно да вземат предвид сигурността на програмата при проектирането ѝ и не трябва да бъдат небрежни, а на пръв поглед малък пропуск може да доведе до сериозни последствия.




Предишен:SQL 2005 – сигурност на базата данни и референтна цялост
Следващ:2011 MSSQL System Security SA Урок за риск от слаба парола
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com