Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Bezpieczeństwo tego GET'a
ArekJ
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Witam,
chciałbym się dowiedzieć czy skrypt ten jest bezpieczny:
  1. <?php
  2. $akcja = $_GET['akcja'];
  3. if($akcja != NULL AND file_exists($akcja.".php")){
  4. include ''.$akcja.'.php';
  5. echo $tekst;
  6. }
  7. else{
  8. echo 'TEST';
  9. }
  10. ?>

Jeżeli nie to jakie trzeba zastosować w nim zmiany?

Ten post edytował ArekJ 2.12.2008, 16:08:55
Go to the top of the page
+Quote Post
Gacek89
post
Post #2





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 2.11.2007
Skąd: Katowice

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


nie jest bezpieczny
tz tak mi se wydaje
niepowinno sie includowac rzeczy z get, ale moge sie mylić bo zstosowałes tutaj sprwdzenie czy taki plik istnieje

Ten post edytował Gacek89 2.12.2008, 16:13:18
Go to the top of the page
+Quote Post
ArekJ
post
Post #3





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Cytat(Gacek89 @ 2.12.2008, 16:11:30 ) *
nie jest bezpieczny


No dobrze, ale można by było trochę bardziej rozbudować to zdanie? Dlaczego nie jest bezpieczny? Jak go zabezpieczyć?

@up Gacek89 edytował post w trakcie wysyłania mojego (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Czekam na dalszze uwagi i ew. pomoc

Ten post edytował ArekJ 2.12.2008, 16:14:43
Go to the top of the page
+Quote Post
Darti
post
Post #4





Grupa: Zarejestrowani
Postów: 1 076
Pomógł: 62
Dołączył: 6.03.2005
Skąd: Wroc

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


bo zrobie u siebie plik pod adresem: http://moserwis/aaa.php a tobie podam zmienną w get akcja=http://moserwis/aaa
Go to the top of the page
+Quote Post
ArekJ
post
Post #5





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


No, a nie zabezpiecza wykonania tego skryptu to, że to co ma się wyświetlić przechowuję w zmiennej $tekst?
Go to the top of the page
+Quote Post
wookieb
post
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Sprawdz jeszcze czy plik nie zaczyna sie od "http://"
Go to the top of the page
+Quote Post
decha-design
post
Post #7





Grupa: Zarejestrowani
Postów: 415
Pomógł: 46
Dołączył: 26.05.2007
Skąd: Sandomierz

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


nie, bo to i tak wykona skrypt zewnetrzny a i w zmiennej $tekst bedzie NULL ...

korzystaj z basename" title="Zobacz w manualu PHP" target="_manual i ze sprawdzaniem czy taki plik istnieje w danych katalogu (np. tak ./includes/xxx gdzie xx to dany plik) ... a jak masz mało tych plików ktore chcesz includowac ... to switch

Ten post edytował decha-design 2.12.2008, 16:22:18
Go to the top of the page
+Quote Post
Gacek89
post
Post #8





Grupa: Zarejestrowani
Postów: 77
Pomógł: 8
Dołączył: 2.11.2007
Skąd: Katowice

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


sprawdz tez jak reaguje na includowanie samego siebiem czy sie skrypt tak niezapentli
Go to the top of the page
+Quote Post
ArekJ
post
Post #9





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


No i właśnie... zapentla się... A jak zrobić, żeby sprawdzał czy plik nie zaczyna się od http://?

EDIT:
Zrobiłem takiego if'a:
  1. <?php
  2. if($akcja != NULL AND file_exists($akcja.".php" AND $akcja != http)){
  3. ?>

Ale mam wrażenie, że to nie ma prawa działać, a inaczej nie umime...

Ten post edytował ArekJ 2.12.2008, 16:35:01
Go to the top of the page
+Quote Post
wookieb
post
Post #10





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(ArekJ @ 2.12.2008, 16:29:24 ) *
A jak zrobić, żeby sprawdzał czy plik nie zaczyna się od http://?


http://php.net/strpos
Go to the top of the page
+Quote Post
ArekJ
post
Post #11





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


Zastosowałem to co podał wookieb i wyszło mi takie coś:

  1. <?php
  2.                                      $akcja = $_GET['akcja'];
  3.                                      $test1 = $akcja;
  4.                                      $test2 = 'http://';
  5.                                      $test3 = strpos($test1, $test2);
  6.                                      if($akcja != NULL AND file_exists($akcja.".php" AND $test3 === false)){
  7.                                      include ''.$akcja.'.php';
  8.                                      echo $tekst;
  9.                                      }
  10.                                      else{
  11.                                      echo 'TEST';
  12.                                      }
  13.                                      ?>

Ale jak sprawdzić czy to działa?
Go to the top of the page
+Quote Post
bełdzio
post
Post #12





Grupa: Zarejestrowani
Postów: 690
Pomógł: 81
Dołączył: 6.04.2005
Skąd: Szczecin

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


http://www.beldzio.com/bezpieczenstwo-dostepu-do-plikow
Go to the top of the page
+Quote Post
ArekJ
post
Post #13





Grupa: Zarejestrowani
Postów: 266
Pomógł: 9
Dołączył: 21.05.2008
Skąd: Łomianki

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


O @bełdzio dzięki za świetny artkył skorzystam! Temat chyba skończony, te zabezpieczenia powinny wystarczyć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
artur_dziocha
post
Post #14





Grupa: Zarejestrowani
Postów: 320
Pomógł: 53
Dołączył: 18.09.2007
Skąd: Radom

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


Temat: Bezpieczenstwo_skryptow_PHP
a może ten temat??
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: 3.10.2025 - 07:19