Przegląd tematu
Autor Wiadomość
Anubis
PostWysłany: Pon 19:25, 28 Sty 2008    Temat postu: Bezpieczeństwo pisania skryptów w PHP

Programując w PHP należy zwrócić uwagę nie tylko na kasę, jaka wpłynie od zleceniodawcy ale też na jakość tworzonych przez siebie skryptów. Jednym z aspektów tego jest bezpieczeństwo.
Przykład 1. SQL injection.

Na szczęście w PHP jest to niemożliwe do zrobienia, ale jeżeli ktoś z deweloperów PHP wpadnie na pomysł możliwości uruchamiania wielu kwerend pojedynczym wywołaniem funkcji mysql_query to jest to świetne pole do popisu dla włamywaczy.

Opis:
przypuśćmy, że mamy

index.php?module=pages&pg_id=16 Wink

takie wywołanie powinno wyświetlić stronę numer 16
w kodzie jest:

SELECT * FROM pages WHERE id=$pg_id

zastanówcie się co by było jakby wywołac stronę:

index.php?module=pages&pg_id=16; DELETE FROM pages;

wtedy w kodzie będzie:

SELECT * FROM pages WHERE id=16; DELETE FROM pages;

czyli mamy 2 zapytania do bazy przy czym drugie jest niepożądane.

Na szczęście jak na razie PHP nie wykona takiego zapytania, ale warto dmuchać na zimne i stosować addslashes().

To powyższe to był przykład tego, czego się nie uda zrobić włamywaczowi w PHP, a poniżej kilka przykładów zapytań z zaznaczonym na czerwono kodem włamywacza - zwróćcie dokładnie uwagę na apostrofy:

SELECT * FROM hasla WHERE login='login' OR 1=1 OR 1='1' AND haslo='haslo'
DELETE FROM subskrypcje WHERE email='email' OR 1='1'

Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Music Lyrics.