![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 11.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Napisałem skrypt ale nie potrafie go zabezpieczyć. Jest to skrypt rejestracji wprowadzający login i hasło do bazy MSSQL
czy funkcja addslashes wystarczy? jeśli możecie to pomóżcie ![]()
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 656 Pomógł: 3 Dołączył: 26.10.2005 Skąd: Częstochowa Ostrzeżenie: (0%) ![]() ![]() |
powinieneś jeszcze użyć funkcji usuwającej wszelkie TAGi HTML, JS itp.
http://pl2.php.net/manual/pl/function.strip-tags.php -------------------- zmoderowano - waga i rozmiar
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Cytat Napisałem skrypt ale nie potrafie go zabezpieczyć. Jest to skrypt rejestracji wprowadzający login i hasło do bazy MSSQL czy funkcja addslashes wystarczy? w MSSQL stosuje się inny znak ucieczki. Zamiast addslashes, mysql_escape_string czy mysql_real_escape_string należy napisać sobie swoją własną funkcję:
i używać jej zamiast addslashes() -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 11.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat w MSSQL stosuje się inny znak ucieczki. Zamiast addslashes, mysql_escape_string czy mysql_real_escape_string należy napisać sobie swoją własną funkcję: Sorka za głupie pytanie ale po prostu nie mam pojęcia o tego typu zabezpieczeniach. Te funkcje, którą podał kicok wstawić na początku pliku czy może wpisać ją w któryś z wierszy zeby zabezpieczyć konkretny fragment pliku? |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Temat: SQL Injection Insertion albo http://www.google.pl/search?hl=pl&q=sql+injection
Żeby się porządnie zabezpieczyć przed SQL Injection musisz mieć jakieś pojęcie o PHP i SQL. Po pierwsze zapamiętaj, że po stronie PHP układanie jest tylko zapytanie (napis), które wysyłane jest to serwera baz danych. Złośliwy użytkownik może w formularzu podać takie dane, które zmienią działanie zapytania, i przed tym trzeba się zabezpieczać. Przykład:
Jeśli użytkownik poda w formularzu: login: admin hasło: iskierka To zapytanie będzie wyglądało tak: SELECT * FROM uzytkownicy WHERE ( login = 'admin' ) AND ( haslo = 'iskierka' ) Jeśli urzytkownik poda w formularzu: login: admin' ) -- hasło: cokolwiek To zapytanie będzie wyglądało tak: SELECT * FROM uzytkownicy WHERE ( login = 'admin' ) -- ') AND ( haslo = 'cokolwiek' ) Wszystko co znajduje się po "--" jest traktowane jako komentarz, serwer baz danych tego nie widzi. Czyli lekko preparując wysyłane dane możemy pobrać informacje o adminie nie znając jego hasła. Żeby MSSQL rozpoznał apostrof jako "apostrof", a nie jako koniec napisu, stosuje się tzw. znaki ucieczki. Dla MSSQL jest to drugi apostrof. Więc jeśli zmienne $login i $haslo przepuścisz przez funkcję, którą podałem wyżej, to nie uda się wykonać ataku SQL Injection:
Po zastosowaniu funkcji secure() zapytanie będzie miało postać: SELECT * FROM uzytkownicy WHERE ( login = 'admin'') -- ' ) AND ( haslo = 'cokolwiek' ) i nie zwróci ono nic, bo w bazie danych najprawdopodobniej nie będzie nikogo z loginem: "admin') -- " ;] Trochę inaczej należy patrzeć na zabezpieczenie danych, które nie są umieszczane w apostrofach, np:
W takim przypadku trzeba stosować intval" title="Zobacz w manualu PHP" target="_manual, ctype_digit" title="Zobacz w manualu PHP" target="_manual czy inne techniki, o których mi się nie chce pisać, a które znajdziesz pod linkami które podałem powyżej. Ten post edytował Kicok 14.07.2007, 20:45:26 -------------------- "Sumienie mam czyste, bo nieużywane."
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 49 Pomógł: 0 Dołączył: 11.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Cytat Czyli lekko preparując wysyłane dane możemy pobrać informacje o adminie nie znając jego hasła. pod warunkiem, ze jest w bazie ktoś z loginem admin ![]() ![]() Dziękuje za pomoc ![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 31.07.2025 - 15:48 |