SQL Injection

Maj 02, 2012
Jakub
SQL Injection (z ang., dosłownie zastrzyk SQL) – luka w zabezpieczeniach aplikacji internetowych polegająca na nieodpowiednim filtrowaniu lub niedostatecznym typowaniu i późniejszym wykonaniu danych przesyłanych w postaci zapytań SQL do bazy danych. Podatne są na niego systemy złożone z warstwy programistycznej (przykładowo skrypt w PHP, ASP, JSP itp.) dynamicznie generującej zapytania do bazy danych (MySQL, PostgreSQL itp.). Wynika on zwykle z braku doświadczenia lub wyobraźni programisty.

Jak się przed tym ustrzec, co zrobić by nie dopuścić do takiego ataku ?.
Podstawowym sposobem jest użycie funkcji mysql_real_escape_string()która jest dostępna na serwerach obsługujących PHP i MySQL. Innym łatwiejszym sposobem, dzięki któremu nie będziemy musieli dodawać do każdego zapytania do bazy funkcji mysql_real_escape_string() jest włączenie na serwerze magic_quotes_qpc. Te dwie metody są bardzo proste do ustawienia i skutecznie chronią dzięki dodawaniu backslashów do znaków specjalnych takich jak ‘,””, co udaremnia atak sql injection. Dodatkowym zabezpieczeniem i zarazem przydatnym elementem dla naszej witryny jest zastosowanie modułu Apache’a mod_rewrite. Dzięki zastosowaniu tego modułu mamy możliwość ukrycia oryginalnej nazwy skryptu a także zmeinnych wysyłanych metodą GET. moduł ten jest często wykorzystywany przy optymalizacji strony pod kątem wyszukiwarek. Przykładowo adres:
https://stevedesign.com.pl/index.php?p=Phpacademy
Aby ustawić maskowanie dla zmiennej p musimy ustawić w pliku .htaccess następujący fragment kodu:

Options FollowSymLinks
RewriteEngine On
RewriteRule ^aktualnosci/([a-zA-Z0-9-/]+)/$ index.php?p=$1

Dzięki takiemu zabiegowi nasz adres wygląda tak: https://stevedesign.com.pl/aktualnosci/Phpacademy/ , a co za tym idzie jest bardziej czytelny niż ten bez użycia modułu i bezpieczny przed atakiem sql injection. Taki link nazywamy przyjaznym URL’em.

Udostępnij

Brak komentarzy

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Zaakceptuj politykę prywatności.

Więcej w stevedesign
Kodowanie stron

Tworzenie stron www wymaga fachowej wiedzy z zakresu informatyki a w szczególności aplikacji internetowych. Aby...

Zamknij