Ochrona przed atakiem sql injection - skuteczna obrona !
Jak obronić stronę przed luką w bazie danych sql injection - sposoby załatania dziury !
flickr, Micah Dowty
Na stronie było już o tym w jaki sposób rozpoznać, czy nasza strona jest podatna na atak sql injection - pozwoliło to oczywiście wyeliminować pewne zagrożenie (gdy stwierdzimy, że strona nie zdaje egzaminu postaramy się ją załatać).
Przecież aby załatać jakąś dziurę - trzeba wiedzieć gdzie jej szukać i na co ona pozwala.
Dlatego właśnie powstały artykuły o błędzie sql injection - dzięki temu, że dowiedziałeś się "nieco" o tej "metodzie ataku" będziesz w stanie zabezpieczyć się na przyszłość.
Zrobię tutaj pewną analogię do sadzenia roślin : ktoś musiał poznać mechanizm rozrostu danego organizmu, dzięki temu czytając instrukcję sadzenia dowiemy się na jakiej głębokości posadzić nasiona, jak często je podlewać itp....
Co innego teoria a co innego praktyka, ktoś na sucho może podać rozwiązanie "zabezpieczenia strony" ale w rzeczywistości nie będziemy wiedzieli przed czym się bronić - w jaki sposób to coś może nam zagrażać.
Nie chodzi przecież o to, aby próbować łamać czyjeś zabezpieczenia - bo to jest karalne - chodzi o to, aby poznać skuteczne metody obrony dzięki rozpoznaniu zagrożenia !
Podobnie przecież działają np. firmy ds. zabezpieczeń np. aby zabezpieczyć samochód przed kradzieżą, trzeba wiedzieć w jaki sposób złodziej jest w stanie do niego się dostać, jakimi narzędziami się posługuje co nie znaczy od razu, że musimy ukraść 5 samochodów - możemy bazować na własnym aucie o ile go nie uszkodzimy i mamy wystarczające teoretyczne doświadczenie - jak się przekonamy że ktoś jest w stanie się do niego dobrać to należy założyć odpowiednie zabezpieczenie.
No ale teraz przejdę do samej obrony :
Po pierwsze to warto włączyć na swoim serwerze narzędzie o nazwie Mod Rewrite.
Co to właściwie daje i do czego służy ?
Posłużę się tutaj prostym przykładem, mianowicie zobaczmy te dwa linki :
1) www.nazwa.pl/articles.php?id=5
2) www.nazwa.pl/articles/5
Jak widzimy w pierwszym adresie jest pokazana "odkryta" ścieżka do naszego artykuły o identyfikatorze 5, w drugim przypadku także znajdziemy się na tej samej stronie - jednak w tym przypadku odbiorca dostaje mniej informacji min. o skryptach znajdujących się na stronie itp...nie mówiąc o skróceniu adresu url - który znacznie łatwiej zapamiętać :)
Aby włączyć mod_rewrite na stronie w pliku
.htaccess należy dopisać :
RewriteEngine On
RewriteRule ^articles/([0-9][0-9])/$ articles.php?id=$1
RewriteRule ^articles/([0-9][0-9])/$ articles.php?id=$1
Kolejnym krokiem w zabezpieczaniu różnego rodzaju stron internetowych opartych na popularnych skryptach np. for internetowych czy cmsów są aktualizacje (updat'y).
Warto z nich skorzystać gdyż eliminują one wiele błędów np. dla Joomla : http://www.trzepizur.pl/blog/11-bezpieczestwo/47-ochrona-przed-sql-injection-ulepszenie.html
Ciekawa strona o zabezpieczeniu przed sql injection : http://lukasamd.pl/ochrona-przed-sql-injection/
Na stronie http://internetmaker.pl/artykul/4013,3,sql_injection_-_anatomia_doklejania_zlosliwego_kodu_sql_i_sposoby_ochrony.html , jest opis w jaki sposób można zabezpieczyć się przed atakiem sql injection z wykorzystaniem formularzy na stronie internetowej.
źródło: internetmaker.pl, Tomasz Gębarowski
Chodzi o pewnego rodzaju filtrację zapytania, które może wprowadzić użytkownik przy wypełnianiu formularzy. A więc np. wypełniając dane do logowania i podając login i hasło - możemy zezwolić aby mógł korzystać wyłącznie z małych i dużych liter, natomiast cyfry będą niedopuszczalne.
0 komentarze:
Prześlij komentarz