Strona 1 z 1
[PHP] Zabezpieczenia
: pt maja 28, 2004 9:45 pm
autor: Yataman
Ostatnio zaczęłem analizować swoje aplikacje pod względem bezpieczeństwa i parę rzeczy zwróciło moją uwagę. Jak to dokładnie jest z tym dodawniem ukośników. Wszędzie piszą, że trzeba stosować addslashes i stripslashes, ale z tego co widzę to już samo PHP robi to automatycznie. Od czego to zależy? Od wersji PHP, ustawień apache?
Re: [PHP] Zabezpieczenia
: pt maja 28, 2004 11:46 pm
autor: Dreen
Jesli mowimy o bezpieczenstwie, to przede wszystkim nalezy sprawdzic zmienne przekazywane metoda GET. Bezwzglednie nie nalezy poprostu wstawiac ich wartosci do doumentu, lecz sprawdzac je pod wzgledem zawartosci i/lub uzywac ich tylko jako wartosci, do ktorych odnosi sie identyfikujac tresc.
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 10:19 am
autor: Yataman
No dokładnie o tym mówiłem. Do tej pory stosowałem zmienne w skróconym zapisie i sprawdzając czy jestem w stanie włamać się do swoich aplikacji zobaczyłem, że wszędzie (w metodzie get i post) automatycznie dodaje slasze.
Trochę to się kłóci z tym co czytałem i zasanawiam się od czego zależy taka opcja.
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 10:26 am
autor: Wojciech Kocjan
Z tymi slashami to zależy od ustawień PHP. W pliku php.ini odpowiada za to:
Kod: Zaznacz cały
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On
"On" oczywiście oznacza dodawanie slashy.
Podstawowa zasada bezpieczeństwa skryptów php to brak zaufania do użytkowników. Należy filtrować wszystko co przesyła USER, nie tylko metodą GET, ale też każdą inną.
Przy zapytaniach do bazy MySQL warto stosować funkcje [manual]mysql_escape_string[/manual], ktora usunie wszystkie niebezpieczne znaki w zapytaniu.
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 1:08 pm
autor: Yataman
Sprawdziłem czy ta opcja jest automatycznie włączana na serwerach internetowych, których używam i dzięki bogu wszystko jest dobrze ustawione.
Czy coś przemawia za stosowaniem tablicowego zapisu zmiennych zamiast form skróconych? Czy są jakieś wyraźne różnice w szybkości odwołań do zmiennych?
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 2:41 pm
autor: Dreen
nie wiem czy dobrze cie zrozumialem ale odpowiem kodem:
to:
[php]<?php
// scrypt.php?tekst=to%20jest%20jakis%20tekst
$tekst = $_GET['tekst'];
echo $tekst;
?>[/php]jest gorsze od tego:[php]<?php
// scrypt.php?id=1
$tablica = array(0=>"to jest jakis test", "to jest inny tekst");
$tekst = $tablica[$_GET['id']];
echo $tekst;
?>[/php]ten drugi jest oczywiscie bezpieczniejszy
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 3:16 pm
autor: Yataman
Chodziło mi o porównanie $_GET['tekst'] z $tekst. Jeśli chodzi o bezpieczeństwo to po prostu nie mam zbyt dużo czasu by wpisać je na listę priorytetów.
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 5:31 pm
autor: Dreen
jak to $tekst z $_GET['tekst'] ? przeciez one zawsze maja te same wartosci
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 6:40 pm
autor: Yataman
... nie lubię cytować siebie, ale sytuacja tego wymaga
Czy coś przemawia za stosowaniem tablicowego zapisu zmiennych zamiast form skróconych? Czy są jakieś wyraźne różnice w szybkości odwołań do zmiennych?
Chodzi oczywiście o porównanie szybkości odwołań do zmiennej.
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 8:50 pm
autor: katoda
Nie każdy serv obsługuje $tekst zamiast $_GET['tekst']. Ja byłem uczony na $_GET['tekst'] i tego się trzymam. Także (chyba) $_GET['tekst'] jest szybsze.
Re: [PHP] Zabezpieczenia
: sob maja 29, 2004 9:59 pm
autor: Dreen
Yataman -> aha juz rozumiem i sadze ze nawet przy bardzo duzych skryptachm gdzie ma sie doczynienia z grubo ponad setka zmiennych, taka roznica jest niezauwazalna, a juz napewno nie ma zwiazku z bezpieczenstwem, dopuki nie stosujesz tego jak w kodzie nr.1
katoda -> to zalezy od zmiennej srodowiskowej register_globals i nie ma zwiazku z pytaniem, bowiem w obydwu kodach zakladam, ze register_globals = "Off", co jest najczestszym i najlepszym rozwiazaniem.