Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Pytanie o sens tego zabezpieczenia, nierozumiem zastosowania tego czegos
xeo-programer
post 15.10.2006, 18:52:24
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


Witam.
Przejechałem wszystkie tematy na forum o bezpieczeństwie, zajęło mi to kilkadziesiąt dluższych chwil ale nie znalazłem odpowiedzi na nurtujące mnie pytanie. Do rzeczy:
znalazłem tego typu zabezpieczenie chyba przed dołączaniem niechcianych plików do skryptu:

Kod
$o = $_GET['o'] = $_POST['o'] = $_REQUEST['o'] = $_SESSION['o'] = $_COOKIE['o'] = $_SERVER['o'] = '';

if( $_GET['o']==$o AND $o<>'' )
displayError( 'błąd w zmiennych systemowych', 1, 'System wykrył obecność nieprawidłowej zmiennej w adresie URL.
Prawdopodobnie próba włamania się do systemu...' );

if( !@file_exists($o.'logs/config.log') )
displayError( 'brak pliku', 1, 'System nie może odnaleźć pliku - logs/config.log.' );


No i tu moje pytanie: czy ten kod zabezpiecza skrypty przed przekazywaniem w url zmiennych przy włączonej opcji register_globals i czy jest to skuteczna metoda ochrony. (widze że są zmienne globalne ale nie wiem czy to jest zabezpieczenie do tych zmienych)

this.pozdrawiam&help->pls

Ten post edytował xeo-programer 15.10.2006, 18:53:15
Go to the top of the page
+Quote Post
1010
post 15.10.2006, 19:13:06
Post #2





Grupa: Zarejestrowani
Postów: 749
Pomógł: 37
Dołączył: 3.10.2006

Ostrzeżenie: (0%)
-----


Cytat
ten kod zabezpiecza skrypty przed przekazywaniem w url zmiennych przy włączonej opcji register_globals


--------------------
Go to the top of the page
+Quote Post
dr_bonzo
post 15.10.2006, 19:34:03
Post #3





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


To jest bez sensu:

to samo mozna zapisac tak:
  1. <?php
  2. $_GET['o'] = '';
  3. $o = '';
  4.  
  5. // wiec ponizszy warunek NIGDY nie bedzie spelniony
  6.  
  7. if( $_GET['o']==$o AND $o<>'' )
  8. ?>


A tego to nie rozumiem:
  1. <?php
  2. if( !@file_exists($o.'logs/config.log') )
  3. displayError( 'brak pliku', 1, 'System nie może odnaleźć pliku - logs/config.log.' );
  4. ?>

Stwierdzanie ze $o != '' na podstawie tego ze zostanie utworzona sciezka do nieistniejacego pliku? Idiotyzm.


Zeby zabezpieczyc sie przed register_globals wystarczy INICJOWAC kazda zmienna uzywana, np


ZLE:
URL = ...?zalogowany=1&haslo=abc
  1. <?php
  2. if ( $haslo = 'abc' ) 
  3. {
  4. $zalogowany = 1;
  5. }
  6.  
  7. if ( $zalogowany )
  8. {
  9. echo "tajne dane";
  10. }
  11. ?>

przyklad klasyczny, gdy w URLu ustawisz zmienna $zalogowany to przy sprawdzaniu
if ( $zalogowany )
$zalogowany i tak bedzie rowne 1 nie wazne jaka wartosc mialo $haslo

na poczatku skryptu nalezy wyzerowac $zalogowany (np $zalogowany = 0 ) lub np: tak

  1. <?php
  2. if ( $haslo = 'abc' ) 
  3. {
  4. $zalogowany = 1;
  5. }
  6. else
  7. {
  8. $zalogowany = 0;
  9. }
  10.  
  11. // tutaj masz calkowita kontrole nad zmienna $zalogowany, i nie jest wazne co zost
    alo w niej umieszczone za pomoca register_globals
  12.  
  13. if ( $zalogowany )
  14. {
  15. echo "tajne dane";
  16. }
  17. ?>


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
xeo-programer
post 15.10.2006, 19:37:38
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 2.10.2005

Ostrzeżenie: (0%)
-----


dziękoofa wielka biggrin.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 17:10