Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 12385|Odpowiedź: 0

[Komunikacja] Tutorial dotyczący walidacji haseł MSSQL Statement 2011 Tutorial dotyczący zabezpieczeń

[Skopiuj link]
Opublikowano 26.11.2014 15:47:51 | | |
Jako międzynarodowe standardowe instrukcje zapytania bazy danych, instrukcje SQL były szeroko stosowane w różnych środowiskach programistycznych. Jako dojrzały i stabilny system, logowanie użytkownika i weryfikacja haseł są niezbędne. W mojej codziennej pracy programistycznej zauważyłem, że wielu programistów używa instrukcji SQL do weryfikacji haseł użytkowników za pomocą takiego stwierdzenia:
sql="Wybierz * z tabeli użytkownika, gdzie imię='"+imię+"' i hasło='"+password+"'"
Imię i hasło to nazwy użytkownika i hasła wprowadzone przez użytkownika, a powyższe instrukcje są wykonywane w celu weryfikacji, czy użytkownik i hasło są prawidłowe i ważne. Jednak analiza wykazała, że powyższe stwierdzenia zawierają śmiertelne luki. Gdy wpisujemy następujący ciąg w nazwie użytkownika: 111'or'1=1, a następnie wpisujemy hasło bez zachodu, ustawiamy je na aaaa. Po zastąpieniu zmiennej, instrukcja SQL staje się następującym ciągiem znaków:
sql="Wybierz * z tabeli użytkownika, gdzie imię='111'or'1=1' oraz hasło='aaaa'
Wszyscy wiemy, że gdy polecenie select ocenia warunki zapytania, ignoruje następujące operacje i (i) podczas napotykania operacji or (or), a wartość 1=1 w powyższym zatwierdzeniu jest zawsze prawdziwa, co oznacza, że niezależnie od wartości wpisanej w hasle, może przejść powyższą weryfikację hasła! Rozwiązanie tego problemu jest bardzo proste i istnieje wiele metod, najczęściej stosowana jest ocena wiarygodności użytkownika i hasła wpisanego przez użytkownika przed przeprowadzeniem weryfikacji, a specjalne znaki, takie jak cudzysłowy czy równe, są zabronione.
Powyższe problemy, choć mogą wydawać się proste, istnieją. Na przykład wczesna wersja słynnej gry online "Smiling Proud Jianghu" w Internecie miała taki problem, a autor dokładnie przeanalizował niektóre z wcześniejszych programów po przeczytaniu raportu o podatnościach tej gry, i było ich wiele. To naprawdę powinno przyciągnąć naszą uwagę. To również ujawnia brak doświadczenia programistycznego i świadomości bezpieczeństwa młodych programistów, w tym autora. Jednocześnie przypomina nam też, że programiści powinni w pełni brać pod uwagę bezpieczeństwo programu przy jego projektowaniu i nie powinni być niedbali, a pozornie drobne pominięcie może mieć poważne konsekwencje.




Poprzedni:Bezpieczeństwo baz danych SQL 2005 i integralność referencyjna
Następny:Tutorial dotyczący ryzyka bezpieczeństwa słabego hasła MSSQL System Security SA 2011
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com