![]() ![]() |
Post
#1
|
|
|
Grupa: Zablokowani Postów: 42 Pomógł: 0 Dołączył: 24.01.2006 Ostrzeżenie: (30%)
|
W kursie php znalazłem takie zdanie w związku ze zmiennymi globalnymi, a konkretniej z p fukncją POST
Cytat "Wydaje się to wygodniejsze i łatwiejsze, lecz powoduje pewne niebezpieczeństwo. Mianowicie używając zmiennych globalnych nie można stwierdzić, czy dana wartość pochodzi z sesji czy może została podana w URLu metodą GET. Przy źle napisanych skryptach można tak obchodzić zabezpieczenia." Jak zabezpieczać skrypty? |
|
|
|
Post
#2
|
|
|
Grupa: Zarejestrowani Postów: 690 Pomógł: 81 Dołączył: 6.04.2005 Skąd: Szczecin Ostrzeżenie: (0%)
|
nie używać register global (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) , a jak już musisz to mocno filtruj (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
|
|
|
|
Post
#3
|
|
|
Grupa: Zablokowani Postów: 42 Pomógł: 0 Dołączył: 24.01.2006 Ostrzeżenie: (30%)
|
Tzn.? Podaj jeśli możesz przykłądy filtrowania?
|
|
|
|
Post
#4
|
|
|
Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%)
|
Samo register globals moze byc wlaczone na serwerze. Po prostu jesli chcesz uzyc zmiennej x przekazywanej metoda GET to odwoluj sie przez $_GET['x']. Tak samo rob z $_POST, $_COOKIE, $_SESSION itp.
|
|
|
|
Post
#5
|
|
|
Grupa: Zablokowani Postów: 42 Pomógł: 0 Dołączył: 24.01.2006 Ostrzeżenie: (30%)
|
I to jest to filtrowanie? :- ) Bo jeśli tak to każdy skrypt to u mnie stosuje (co zrobiłem troche nieświadomie ;- ))
Jedno jeszcze pytanie... co z tym include? |
|
|
|
Post
#6
|
|
|
Grupa: Przyjaciele php.pl Postów: 2 605 Pomógł: 96 Dołączył: 22.10.2004 Skąd: UK Ostrzeżenie: (0%)
|
To już było poruszane, nawet jest temat przyklejony dotyczący bezpieczeństwa skryptów ... http://forum.php.pl/index.php?showtopic=30056
|
|
|
|
Post
#7
|
|
|
Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%)
|
Cytat(blaskognia @ 2006-01-28 19:45:13) I to jest to filtrowanie? :- ) Bo jeśli tak to każdy skrypt to u mnie stosuje (co zrobiłem troche nieświadomie ;- )) Jedno jeszcze pytanie... co z tym include? Jesli to bylo pisane do mnie to odpisuje. Nie, to nie jest przykald filtrowania, tylko pokazane jak odwolywac sie do zmiennych pochodzacych z konkretnych zrodel (GET, POST itp). Register global moze byc wlaczone i nie spowoduje to ze skryopty beda mniej bezpieczne. A co do samego filtrowania, to bylo to juz poruszane na forum dziesiatki razy. Trzeba szukac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . |
|
|
|
Post
#8
|
|
|
Grupa: Zablokowani Postów: 42 Pomógł: 0 Dołączył: 24.01.2006 Ostrzeżenie: (30%)
|
A czy istnieje możliwość włamania się gdy skrypt korzysta z sesji? Np.:
if ($_SESSION["zalogowany"]=="tak") { Jeżeli jest zalogowany, to coś tam wykonuje. Czy haker może to złamać? |
|
|
|
Post
#9
|
|
|
Grupa: Zarejestrowani Postów: 188 Pomógł: 0 Dołączył: 23.05.2005 Ostrzeżenie: (0%)
|
W 99% nie jest w stanie tego zlamac (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Zmienne sesyjne przechowywane sa na serwerze. Musialby dostac sie do plikow w ktorych przechowywane sa te zmienne. To tak w wielkim skrocie, bo nie wspominam tu o przechwytywaniu sesji itp.
|
|
|
|
Post
#10
|
|
|
Grupa: Zablokowani Postów: 42 Pomógł: 0 Dołączył: 24.01.2006 Ostrzeżenie: (30%)
|
Czyli na dobrą sprawę niemal 100% zabezpieczeniem jest zamknięcie wszystkich skryptów w
if ($_SESSION["zalogowany"]=="tak") { czy tak? :- D |
|
|
|
Post
#11
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%)
|
przy register_globals = on
mając taki kod:
zmienna $zalogowany pobirała wartość np w Twoim przypadku z sesji ale... tajny_plik.php?zalogowany=1 i zmienna $zalogowany mogła przyjąć wartość true. ogolnei zamotka z tym była. najbezpieczenij uzywac $_GET $_POST itd. do tego sprawdzac czy przychadzące dane są idpowiedniego typu, is numeric itd. wiecej w temacie sql injection (przyklejony jest). |
|
|
|
Post
#12
|
|
|
Grupa: Zablokowani Postów: 42 Pomógł: 0 Dołączył: 24.01.2006 Ostrzeżenie: (30%)
|
Ale ja nie napisałem:
if($zalogowany == true) tylko: if ($_SESSION["zalogowany"]=="tak") To zmusza przecież do pobrania nie z pasa tylko konkretnie z sesji. |
|
|
|
Post
#13
|
|
|
Grupa: Przyjaciele php.pl Postów: 1 224 Pomógł: 40 Dołączył: 6.07.2004 Skąd: Wuppertal Ostrzeżenie: (0%)
|
tak. to jest jak najbardziej poprawne w myśl 'bezpieczeństwa'
|
|
|
|
![]() ![]() |
|
Aktualny czas: 21.12.2025 - 23:41 |