Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Początkujący - bezpieczeństwo zastosowanego rozwiązania
Forum PHP.pl > Forum > Przedszkole
poki
Witam, pisze sobie stronkę i mam pytanie - czy poniższy kod jest bezpieczny - tzn. czy ktoś nie jest w stanie przy takim rozwiązaniu zaatakować mojej strony i spowodować obciążenia konta hostingowego przez co mnie wywalą z hostingu.

  1. <div class="menus">
  2.  
  3. <ul id="menu">
  4. <? $adre = explode("/", $_SERVER['REQUEST_URI']); if(strstr($adre[1], "index.php") != FALSE) { $adres = explode("index.php", $adre[1]); } else { $adres[1] = $adre[1]; } ?>
  5.  
  6. <? if($adres[1]=="?go=kolory") { echo '<li class="active">'; } else
  7. if($adres[1]=="?go=kolory-bialy") { echo '<li class="active">'; } else
  8. if($adres[1]=="?go=kolory-czarny") { echo '<li class="active">'; } else
  9. if($adres[1]=="?go=kolory-czerwony") { echo '<li class="active">'; }
  10. else { echo '<li>'; } ?><div><a href="?go=kolory">kolory</a></div></li>
  11. <li class="spacer"></li>
  12.  
  13. <? if($adres[1]=="?go=wzory") { echo '<li class="active">'; } else
  14. if($adres[1]=="?go=wzory-kwadraty") { echo '<li class="active">'; } else
  15. if($adres[1]=="?go=wzory-trojkaty") { echo '<li class="active">'; }
  16. else { echo '<li>'; } ?><div><a href="?go=wzory">wzory</a></div></li>
  17.  
  18. </ul>
  19. </div>
  20.  
  21. <?
  22. if (!isset($_GET['go'])) {
  23. include("glowna.php");
  24. } else {
  25. if($_GET['go']=="glowna" || eregi("http:\/\/",$_GET['go'])==true || eregi("\.", $_GET['go']) || !(file_exists($_GET['go'].".php"))){
  26. include("glowna.php");
  27. } else {
  28. ?>
  29. <div id="news">
  30.  
  31. <div id="menu2">
  32.  
  33. <?
  34. if(file_exists("menu_".$_GET['go'].".php")) {
  35. include("menu_".$_GET['go'].".php");
  36. } else {
  37. include("menu.php");
  38. }
  39. ?>
  40.  
  41. </div>
  42.  
  43. <div id="contentx">
  44.  
  45. <?
  46. include($_GET['go'].".php");
  47. ?>
  48.  
  49. </div>
  50. </div>
marcio
  1. include($_GET['go'].".php");

Nie wyglada to zbyt ciekawie :]
Zrob albo dynamicznie generowana sciezke lub statyczne pliki ktore moga byc includowane zapisz to w tablicy i potem rob:
  1. if(in_array($inc, $files) && file_exists($inc)) {
  2.  
  3. include($inc.".php");
  4.  
  5. }

Albo na stale daj sciezke do katalogu z ktorego bedzie moznabylo includowac pliki jesli nie masz tam nic waznego :]

btw: te if'y/elseif jakies brzydkie i bezsensowne sa snitch.gif
poki
hmm a to co jest może powodować zapętlenie lub ktoś może zapętlić ten mój twór ?
marcio
Do tej zmiennej go z get'a wpisz:
index.php albo ./index.php czy tam ../index.php zalezy jak masz katalogi i gdzie jest index
Ewentualnie jak masz allow_url o ile mi sie zdaje to wpisz http://google.pl i powinno dzialac :] mozna podpiac shell'a.

http://haxite.org/index.php3?site=artykul&...view&id=792
http://haxite.org/index.php3?site=artykul&...view&id=824
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.