Показать сообщение отдельно
Старый 12.01.2012, 16:54   #18
Crayzi
ПроЭктировщик
 
Регистрация: 26.06.2007
Сообщений: 194
Написано 21 полезных сообщений
(для 25 пользователей)
Ответ: Впросы новичка

Сообщение от Aikon Посмотреть сообщение
Crayzi, простой пример.
Ты получаешь имя пользователя и пытаешься искать его в базе
select * from Accounts where login = 'ВведеноеПользователемИмя'
Тогда, пользователь с именем Вася';delete from Accounts;commit;select '1
Почистит всю базу пользователей :D

Поскольку вместо одного ожидаемого запроса будет выполнена следующая последовательность
select * from Accounts where login = ' Вася';
delete from Accounts;
commit;
select '1'

Пример простой, но думаю вполне наглядный.

Ясно, я слышал о подобном, но я сделал функцию для проверки пригодности логина пароля и имени )
Если Имя/пароль/логин вписуются в рамки допустимого (длина менее 10 символов, исользуются только английские крупные и мелкие буквы, а так-же цифры) то функция вернет мне True)
Function ValidateLoginPassName%(RegText$)
	Local TextLen%,MidKey%,AllOk%
	If Len(RegText$)>10 Then Return False
	For TextLen%=1 To Len(RegText$)
		MidKey%=Asc(Mid(RegText$,TextLen%,1))
		AllOk%=False
		If MidKey>=48 And key<=57
			AllOk%=True
		Else If MidKey>=65 And MidKey<=90
			AllOk%=True
		Else If MidKey>=97 And MidKey<=122
			AllOk%=True
		EndIf
		If AllOk%=False Then Return False
	Next
	Return True 
End Function
П.с. И убедился что не зря я такую функцию замутил, прочитав про "sql-injection", по твоему совету.
П.сс. Твой пример хороший)

Последний раз редактировалось Crayzi, 19.01.2012 в 01:35.
(Offline)
 
Ответить с цитированием