Łukasz Pilorz
msgbartop
Bezpieczeństwo aplikacji PHP
msgbarbottom

28 Apr 07 SQL Injection i trzy etapy łatania dziury

Na blogu Michała Ławickiego pojawił się krótki artykuł na temat szybkiego łatania SQL Injection przy pomocy mod_rewrite. Coraz częściej moduł ten jest wykorzystywany jako ubogi kuzyn mod_security. Rozwiązanie takie ma kilka zalet:

  • można je szybko zaadaptować niezależnie od budowy kodu aplikacji (w opisanym przypadku łatanie wymagało modyfikacji wielu podobnych plików),
  • nie ingeruje w kod PHP, a więc nie przeszkadza w przygotowaniu i wdrożeniu docelowego zabezpieczenia.

Oczywiście reguły mod_rewrite nie powinny stanowić ostatecznej wersji mechanizmu obrony przed SQL Injection - byłoby to rozwiązywanie problemu komunikacji aplikacji z bazą danych na poziomie przychodzących żądań HTTP, co najprawdopdobniej nie sprawdziłoby się na dłuższą metę. Obrona taka ogranicza się tylko do zmiennych GET, ponadto przy niewielkich zmianach logiki aplikacji potrzebne byłyby modyfikacje kilku jej warstw, co nie jest wygodne.

Pomysł jest jednak moim zdaniem dobry. Łatanie dziury wykrytej przez użytkownika lub programistę składa się zwykle z trzech etapów: szybkiej łatki, monitorowania ewentualnych prób ataków, oraz docelowego rozwiązania, uwzględniającego zebrane w drugim etapie dane. Pierwszy z tych kroków realizuje właśnie opisana regułka mod_rewrite.



Leave a Comment