![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 245 Pomógł: 4 Dołączył: 22.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Chciałbym rozpocząć temat o bezpieczeństwie skryptów php. Na forum istnieje już temat o bezpieczeństwu przy wykonywaniu zapytania SQL lecz nie ma o ogólnym bezpieczeństwie skryptów. 1. Złe używanie include. Często dołączamy pliki dynamicznie pobierając miejsce gdzie znajduje się plik metodą GET. Przykładowy adres: http://www.jakas-strona.pl/index.php?plik=katalog.php Kod php:
Taki skrypt dokonałby dołączenia pliku katalog.php do skryptu lecz co by się stało gdyby włamywacz wpisał taki adres: http://www.jakas-strona.pl/index.php?plik=...t-niszczacy.php Dajmy na to że skrypt znajdujący się na serwerze hakera wygląda tak:
No i jeżeli pliki w katalogu mają uprawnienia pozwalające na usunięcie ich przez skrypt to możemy się pożegnać z plikami w katalogu. Jak temu zapobiec (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Rozwiązanie 1. Tworzymy taki include:
Taka instrukcja pozwala na dołączanie jedynie plików które znajdują się w katalogu ze skryptem czyli nie można załączyć pliku z innego serwera. Ja narazie pamiętam tylko tyle lecz jeżeli znacie jakieś inne błędy popełniane przez programistów a także sposoby walczenia z nimi to się tutaj dopiszcie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Pozdrawiam // prosiłbym moderatorów (jeżeli można) o przyklejenie tego tematu --- Przyklejone - hwao |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 449 Pomógł: 0 Dołączył: 26.05.2004 Skąd: Nowy Sącz Ostrzeżenie: (0%) ![]() ![]() |
Mozna nieco przefiltrowac zmiena ktora pzechowuje nazwe dolaczanego pliku. I jezeli jest to plik z innej domeny to adres zostanie nieco zmodyfikowany na tyle ze nie zostanie znaleziony.
Mozna jeszcze wszystkie includowane pliki przechowywac w jakims jednym katalogu i przed wywolaniem takiego pliku zawsze do zmiennej bedzie dolepiona sciezka co zmieni "niechciane linki" . Mozna tez sprawdzic czy includowany plik napewno pochodzi z naszej domeny basename()" title="Zobacz w manualu PHP" target="_manual Po takiej filtracji ja bym sie czul zupelnie spokojnie. @Speedy czasem musimy cos zostawic w ciasteczku aby rozpoznac danego uzytkownika. Np podczas stosowania autologinu do panelu admina - i tu niestety jest niebezpieczenstwo, na ktore ja nie znam jeszcze dobrego zabezpieczenia. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 13:06 |