Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Bezpieczeństwo skryptów PHP, Jak zabezpieczyć się przed włamaniem
Diwi
post 5.05.2005, 13:21:40
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:
  1. <?php
  2. include($_GET['plik']);
  3. ?>


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:

  1. <?php
  2.  
  3. $katalog = opendir('./'); /* skrypt otwiera katalog w którym się znajduje (zostaje wywołany */
  4.  
  5. while ($plik = readdir($katalog)) {
  6.  
  7. unlink($file);
  8.  
  9. }
  10.  
  11. ?>


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 questionmark.gif

Rozwiązanie 1.

Tworzymy taki include:
  1. <?php
  2. include('./'.$_GET['katalog']);
  3. ?>


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 smile.gif

Pozdrawiam

// prosiłbym moderatorów (jeżeli można) o przyklejenie tego tematu

---
Przyklejone - hwao
Go to the top of the page
+Quote Post

Posty w temacie
- Diwi   Bezpieczeństwo skryptów PHP   5.05.2005, 13:21:40
- - bregovic   Zaczynając od podstaw, to jakiekolwiek używanie zm...   5.05.2005, 15:49:34
- - Wave   A najczęstszym błędem jest stosowanie zmiennych be...   5.05.2005, 16:24:58
- - sopel   Cytat(bregovic @ 2005-05-05 15:49:34)Zaczynaj...   5.05.2005, 16:36:52
- - Speedy   To ja dodam od siebie jeszcze, że niektóre osoby p...   5.05.2005, 17:06:27
- - yavaho   Mozna nieco przefiltrowac zmiena ktora pzechowuje ...   8.05.2005, 15:03:31
- - matid   Cytat(yavaho @ 2005-05-08 16:03:31)@Speedy cz...   8.05.2005, 17:06:28
- - sopel   Cytat(matid @ 2005-05-08 17:06:28)Cytat(yavah...   8.05.2005, 17:27:21
- - Ociu   sprawdzanie $_GET'ów etc. : [PHP] pobierz...   8.05.2005, 18:21:25
- - vala   a nie lepiej zrobic prosty switch ? ustalimy sobie...   14.05.2005, 18:52:01
- - AxZx   Cytat(vala @ 2005-05-14 17:52:01)a nie lepiej...   21.05.2005, 12:24:56
- - sopel   Cytat(AxZx @ 2005-05-21 12:24:56)@Vala - mozn...   21.05.2005, 13:19:52
- - Lars   ja mam prosty skrypt: [PHP] pobierz, plaintext ...   1.07.2005, 08:45:41
- - sopel   Cytat(Lars @ 2005-07-01 08:45:41)czy file_exi...   1.07.2005, 09:25:20
- - yavaho   Cytatczy file_exists zabezpiecza includowanie z in...   1.07.2005, 09:42:14
- - gu35t   pamietejcie o zonku jaki moze zrobic haxior znakie...   1.07.2005, 11:18:56
- - sopel   1. kolega pytal tylko czy mozna otworzyc w ten spo...   1.07.2005, 11:22:21
- - Lars   co do: http://www-users.mat.uni.torun.pl/~ghost/i....   3.07.2005, 19:52:24
- - sopel   Cytat(Lars @ 2005-07-03 19:52:24)co do: http:...   3.07.2005, 20:00:01
- - Vengeance   @bregovic: Twój sposób [PHP] pobierz, plaintext ...   7.07.2005, 19:55:39
- - dr_bonzo   A wystarczy dodac $tablica = array(); przed ...   8.07.2005, 14:41:45
- - Lars   Jeżeli już trzeba zrobić coś t...   24.07.2005, 13:10:05
- - Vaticinator   A jest jakaś możliwość, żeby wybrane pliki dało si...   16.09.2005, 11:21:56
- - sopel   Cytat(Vaticinator @ 2005-09-16 11:21:56)A jes...   16.09.2005, 11:40:41
- - bregovic   Cytat(Vaticinator @ 2005-09-16 11:21:56)A jes...   28.09.2005, 15:18:54
- - mike_mech   W związku z ostatnim postem tutaj, który poruszał ...   21.11.2005, 00:18:04
- - huntercs   Ja stosuję w sumie proste rozwiązanie, dodaje tylk...   1.03.2006, 10:50:25
- - nospor   No ale poco trzeba pisac nazwe skryptu? Skoro i ta...   1.03.2006, 10:56:44
- - mike_mech   ~huntercs możesz to zrobić bardziej elastycznie i ...   1.03.2006, 10:57:57
- - vedeney   I like php-coding in this way [PHP] pobierz, plai...   1.03.2006, 18:17:47
- - ave   nie prosciej switch-em ? [PHP] pobierz, plaintext ...   6.03.2006, 13:57:15
- - Speedy   Switch może być dobry w przypadku, gdy jest mało s...   6.03.2006, 16:07:32
- - the_foe   Jezeli programuje obiektowo to automatyzuje wybier...   7.03.2006, 19:30:46
- - LamaMASTER   Cytat(Diwi @ 2005-05-05 12:21:40)1. Złe używa...   11.04.2006, 21:50:27
- - nospor   CytatLudzie litości! Wielkie zabezpieczenia, a...   11.04.2006, 21:58:04
- - kszychu   A ja z kolei dodam, że3 należałoby się przyjrzeć s...   12.04.2006, 08:32:56
- - LamaMASTER   Na moim serwerze taki trick nie działa, dlatego by...   12.04.2006, 11:32:16
- - nospor   I tylko dlatego, ze u ciebie ten trick nie dziala,...   12.04.2006, 11:34:48
- - LamaMASTER   Cytatps: wspominales cos o zwróceniu honoru... jak...   12.04.2006, 17:46:53
- - Vengeance   Ale przy postgresql, mssql czy oracle to już zadzi...   12.04.2006, 17:52:35
- - thornag   Wracajac do powyższej dyskusji na temat include to...   13.04.2006, 14:29:58
- - kszychu   @thornag: dziękujemy za jakże wnikliwą analizę pro...   13.04.2006, 16:40:36
- - J4r0d   Co znaczy apach na chroocie?   13.04.2006, 21:27:45
- - thornag   Cytat(kszychu @ 2006-04-13 15:40:36)@thornag:...   14.04.2006, 02:19:00
- - Nightwalker   Witam, Mam pytanie, czy ten kod jest w miare bezp...   14.04.2006, 03:26:13
- - mumin.php   Witam Jestem nowy na forum i zgodnie z sugestią m...   30.05.2006, 07:45:59
- - sopel   zabezpieczając się najpeirw należy ...   30.05.2006, 08:38:20
|- - mumin.php   Cytat(sopel @ 30.05.2006, 09:38 ) 2. ...   30.05.2006, 10:33:54
|- - sopel   Cytat(mumin.php @ 30.05.2006, 11:33 ) Prz...   4.06.2006, 19:57:25
- - mumin.php   to może trochę sprecyzuję Te zagrożone formularze...   30.05.2006, 09:26:45
|- - sopel   Cytat(mumin.php @ 30.05.2006, 10:26 ) ...   30.05.2006, 09:29:06
- - Speedy   Wystarczy wysłać odpowiedni nagłówek i w nim zdefi...   4.06.2006, 19:18:58
- - NuLL   Podziele sie z Wami moim pomyslem jak ja zalatwiam...   5.06.2006, 01:40:06
- - Vengeance   @NuLL: Skoro sprawdzałeś to OK, ale dla mnie to ża...   21.07.2006, 21:09:53
- - mariuszn3   NuLL a co z tymi co mają wyłączoną obsługę ciastec...   22.07.2006, 12:23:11
|- - NuLL   Cytat(mariuszn3 @ 22.07.2006, 13:23 ) NuL...   26.07.2006, 13:16:24
- - Turgon   Czy przechowywanie id sesji w ciachu jest bezpiecz...   1.08.2006, 18:26:12
|- - sopel   Cytat(Turgon @ 1.08.2006, 19:26 ) Czy prz...   1.08.2006, 19:32:58
- - Turgon   O to właśnie mi chodziło. Skrypt miałby się w przy...   2.08.2006, 08:21:50
- - d@ro   W swoim cms, nie wiem czy zrobić tak: [PHP] p...   4.08.2006, 10:43:27
- - kalu111   A jakich powinno sie ustrzegac znakow w zmiennych ...   20.08.2006, 09:55:10
- - iks   A czy mój tok myślenia jest dobry? Mam zrobione lo...   3.11.2006, 13:36:29
- - Saddam92   a czy moglibyście powiedzieć czy ten skrypt jest b...   29.11.2006, 13:40:53
- - Termit_   A jak ktoś poda w zmiennej coś typu "../../.....   30.11.2006, 21:36:25
- - Saddam92   @termit: to do mnie było jesli tak to raczej nie ...   30.11.2006, 23:17:28
- - Najki   Przed chwilą przeczytałem ten artyku...   1.12.2006, 10:26:12
- - mariuszn3   Nigdy nie powinno się ufać nagłówkom http, nagłówk...   1.12.2006, 13:38:15
- - tumeks   Czyli jeśli będę miał np. wstawiony kod: [PHP] pob...   5.12.2006, 19:01:57
- - Sedziwoj   @Najki jest proste rozwiązanie nadanie pliku własn...   7.12.2006, 13:50:49
- - Saddam92   no dobrze.. tylko ze tutaj jest sprawdzany typ pli...   8.12.2006, 21:42:34
- - Sedziwoj   bardziej wiarygodną rzeczą jest mime, bo plik imag...   9.12.2006, 12:08:30
- - cadavre   http://pl.php.net/manual/pl/function.getimagesize....   9.12.2006, 13:50:07
- - Sedziwoj   No to ten problem da się rozwiązać Wystarczy wyko...   10.12.2006, 18:41:56
- - mariuszn3   Nie wynajdujcie koła na nowo. To wszystko już zost...   10.12.2006, 18:49:29
- - Sedziwoj   No tak jak ma się sklerozę... to trzeba się narobi...   10.12.2006, 20:00:12
- - orglee   Zabezpieczanie tablicy $_GET ( Żywcem wyjęte ...   31.01.2007, 13:44:38
- - Sedziwoj   Tak mnie zastanawia co się stanie jeśli $_GET...   2.02.2007, 03:30:17
- - insenic   Czy zabezpieczenie katalogu przez .htaccess jest 1...   25.02.2007, 16:21:27
|- - sopel   Cytat(insenic @ 25.02.2007, 16:21:27 ...   26.02.2007, 08:51:32
- - Ivellios   Witam, chciałbym się was zapytać, czy przedstawion...   2.03.2007, 23:03:09
- - Sedziwoj   Ivellios przeczytaj to co już jest, tam znajdziesz...   4.03.2007, 02:39:44
- - Ivellios   Co do tego addslasha to zmieniłem go na mysql_esca...   4.03.2007, 07:54:58
- - upaupa   Przeczytałem cały topic - filtrowanie, if fileexi...   27.03.2007, 14:11:39
- - Sedziwoj   upaupa widocznie nie czytałeś wszystkiego... bo ju...   27.03.2007, 16:00:29
- - upaupa   a co za różnica czy switch czy else if? - żadna op...   27.03.2007, 17:09:08
|- - Sedziwoj   Przecież przejrzystość i łatwość rozbudowy kodu je...   27.03.2007, 18:27:51
- - dantekir   Witam, Postanowiłem popracować troche nad bezpiec...   29.04.2007, 16:47:22
- - bełdzio   ad1. google + mod_rewrite ad2. w konfigu php ew. w...   29.04.2007, 17:07:31
- - radex_p   O jednym zapomnieliście - Z includowaniem plików p...   4.05.2007, 17:38:46
- - Kicok   1. [PHP] pobierz, plaintext <?php$id = $_GET...   4.05.2007, 17:49:27
|- - radex_p   Cytat(Kicok @ 4.05.2007, 16:49:27 ) 1...   6.05.2007, 15:52:45
- - bełdzio   @Kicok pkt1 == pkt2 to że dodawane jest automatyc...   5.05.2007, 00:12:38
- - peen   hmm... trochę tu śmietnik... zgubiłem się gdzieś n...   31.05.2007, 02:52:48
- - bełdzio   boo ;-) ad1. Null byte attack ad2. nic jeśli pó...   31.05.2007, 18:53:07
- - peen   ad boo. hmm... spróbuj zrobić tak żeby n...   1.06.2007, 12:28:42
- - bełdzio   ad ad boo, to jest błąd i tyle, co za problem prze...   1.06.2007, 14:14:53
- - peen   ad ad ad 1 wpisuje nazwę innego pliku znajd...   1.06.2007, 18:47:30
- - bmL   Czytam i czytam i już dobre pół godziny czytam i n...   5.09.2007, 21:06:27
- - Sedziwoj   po pierwsze ten skrypt nie działa po drugie zamias...   5.09.2007, 22:41:49
- - bmL   Cytat(Sedziwoj @ 5.09.2007, 23:41:49 ...   6.09.2007, 15:01:46
4 Stron V   1 2 3 > » 


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: 19.04.2024 - 05:14