Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zabezpieczenie przed otwarciem pliku
GreenGo
post
Post #1





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


Witam.
W każdym module na mojej stronie mam plik admin.php który odpowiada za dodawanie rekordów do bazy itp.
Normalnie przez panel admina, jeśli ktoś nie poda dobrego hasła, to nie będzie mógł zobaczyć PA. Niestety jeśli ktoś toworzy plik admin.php jakiegoś modułu przez wpisanie do przeglądarki bezpośredniego adresu, to już będzie mógł "podziałać" w tym pliku, czyli np. wszystko usunąć.

Jesta jakaś możliwość aby sprawdzić czy plik jest otwierany przez np. incule a jeśli nie to nie pokazać jego zawartości ?

Pozdrawiam.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Sprawdzanie przez include:
  1. <?php
  2. include 'admin.php?supertajnazmienna=supertajnawartosc';
  3. ?>

I w pliku admin.php sprawdzaj, czy istnieje supertajnazmienna w $_GET.

Najlepiej, to zrobić w głównym pliku panelu jakąś stałą, a w plikach modułów sprawdzaj, czy ta stała została wcześniej zdefiniowana.

Ten post edytował erix 12.10.2006, 19:18:09
Go to the top of the page
+Quote Post
UDAT
post
Post #3





Grupa: Zarejestrowani
Postów: 442
Pomógł: 0
Dołączył: 27.12.2005

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


Popatrz na _SERVER["SCRIPT_FILENAME"] i _SERVER["REQUESTED_URI"]
Go to the top of the page
+Quote Post
GreenGo
post
Post #4





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


UDAT - niestety teraz to mi nie wiele pomogło (IMG:http://forum.php.pl/style_emoticons/default/sad.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #5





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Zasady sa w miare proste:
1)
Plik includowany powinien zawierac tylko funkcje tudziez klasy, zadnego kodu wykonywujacego. Nawet jesli ktos odpali bezposrednio z adresu taki plik, to na nic mu sie to zda, gdyz odpali tylko skrypt z definicjami funkcji/klas a nie z wykonaniem kodu

2)
wszystko co includujesz daj do jakiegos katalogu, a na katalog ten zaloz plik .htaccess z trescia np:
Kod
deny from all

Co nie pozwoli na uruchomienie go z przeglądarki, ale ty bedziesz mogl je includowac
Go to the top of the page
+Quote Post
GreenGo
post
Post #6





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


sory za beznadziejne pytanie ale jak założyć plik .htaccess na jakiś katalog ? :| Chodzi o to abym po prostu w jakimś katalogu stworzył taki plik z tątreścią ?
Go to the top of the page
+Quote Post
1010
post
Post #7





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

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


najprosciej jest tak:
przy include:
  1. <?php
  2. $admin ="tak";
  3. include ("jakis_zabezpieczony_plik.php");
  4. ?>


i
jakis_zabezpieczony_plik.php (to wstaw na poczatku)
  1. <?php
  2. if($admin!="tak")
  3. {
  4.  //jakies przekierowanie na strone glowna serwisu
  5.  //badz tez zatrzymanie skryptu funkcja die();
  6. }
  7. ?>
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Chodzi o to abym po prostu w jakimś katalogu stworzył taki plik z tątreścią

Dokladnie tak. Poczytaj tez na googlach jesli nadal bedziesz mial problemy. Ale w zasadzie punkt 1) rozwiązuje caly problem. Punkt 2) to juz tak dla zasady (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
1010
post
Post #9





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

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


Czy moje rozwiązanie nie jest prostsze i na tyle samo skuteczne?
Go to the top of the page
+Quote Post
GreenGo
post
Post #10





Grupa: Zarejestrowani
Postów: 265
Pomógł: 4
Dołączył: 30.08.2004

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


heh chciałbym skorzystać z punktu 1 ale takie coś jak funkcje czy klasy są mi obce więc klepie kod jak leci czyli pliki te wykonują kod :/ Na razie zastosuje pkt. 2 (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Dzieki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #11





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
Czy moje rozwiązanie nie jest prostsze i na tyle samo skuteczne?
to zalezy jak lezy (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Dla mnie Twoje rozwiązanie nie jest proste (moze nie "nie proste", a raczej upierdliwe), musialbym u siebie zawsze pamietac by sprawdzac te zmienna. Ja zawsze w includach mam funkcje/klasy i sie nie martwie o zadne zmienne.

Ale jesli ktos w includach ma wykonywalny kod, to Twoje rozwiązanie jest w miare ok, pod warunkiem, ze wylaczone jest register_globals
Go to the top of the page
+Quote Post
1010
post
Post #12





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

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


Nom tak. Wyłączone registers_globals to podstawa aby moj przykład miał szansę się sprawdzić...
Go to the top of the page
+Quote Post
webik
post
Post #13





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 1.05.2006
Skąd: Leżajsk\Kraków

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


Hey

Kazda metoda jest dobra ja uzywam takiego kodu na poczatku kazdego pliku ktorego niechce nikomu pokazywac:

  1. <?php
  2. if(ereg(basename(__FILE__),$_SERVER['PHP_SELF']))
  3. die();
  4. ?>


ale oczcywiscie ponadto uzywam plikow .htacess

Pozdrawiam

Ten post edytował webik 13.10.2006, 00:41:25
Go to the top of the page
+Quote Post
eai
post
Post #14





Grupa: Zarejestrowani
Postów: 367
Pomógł: 10
Dołączył: 20.05.2005

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


Ja rozwiazuje za pomoca kontroli dostepu.
Trzymam dane o prawach dostepu w sesji.

Klasy i kod wykonujacy trzymam w oddzielnych plikach.
Przy wywolywaniu kodu sprawdzam czy osoba ma do tego prawo.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 22.08.2025 - 20:48