Anubis |
Wysł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
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' |
|