Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kod Źródłowy pliku w PHP
Forum PHP.pl > Inne > Hydepark
Anonimowy
Mam do was pytanko. Czy ktoś z was umiałby napisać skrypt który pokaże kod źródłowy nieprzetworzonego jeszcze przez serwer pliku php? Jeśli tak to napiszcie mi kod takiego skryptu na maila sparxem@op.pl Z góry ThanX.
dr_bonzo
Co za problem
file_get_contents()
a potem print()
ale nie o to ci chodzilo?
DeyV
na tym polega bezpieczeństwo php, że nie jest to możliwe. Inaczej każdy np. pobrałby sobie kod .. Allegro. Ciekawe - ile jest warty...
Przenosze
sztosz
Kolega hyba chciał cos shakowac ale nie wie jak winksmiley.jpg
spenalzo
Kolega pewnie ma zlecenie i chciał mieć gotowy skrypt smile.gif (no offence tongue.gif)
scanner
Cytat(DeyV @ 2005-01-28 22:39:09)
na tym polega bezpieczeństwo php, że nie jest to możliwe. Inaczej każdy np. pobrałby sobie kod .. Allegro. Ciekawe - ile jest warty...
Przenosze

Niewiele - za bardzo siada przy dużym obciążeniu.
DeyV: napiszemy nowy engine i im sprzedamy - myślę, że za 30.000 by poszedł.
awides
Cytat(scanner @ 2005-01-31 07:27:49)
Niewiele - za bardzo siada przy dużym obciążeniu.

jak kod nie jest optymalnie napisany to niewiele trzeba żeby go "unieruchomić"
(nieważne w jakim języku jest napisany) winksmiley.jpg
hawk
A co to znaczy "optymalnie napisany"?
Bakus
W poście nie było napisane na jakim serwerze... proponuję więc zamiast pisać, że z innych serwerów się nie da, pokazać, że na lokalnym się da takie coś zrobić...
Posłużę się funkcją highlight_file" title="Zobacz w manualu PHP" target="_manual

  1. <?php
  2. // Kod pliku np. source.php
  3. highlight_file($GET[&#092;"file\"]);
  4. ?>


By zobaczyć źródło pliku index.php z katalogu w ktorym umieszczony jest ten kod (dla przykladu jako source.php) wywolujemy w przegladarce:
http://localhost/source.php?file=index.php
Jednak nie jest to rozwiązanie bezpieczne... pozwala na przeglądnięcie zawartości dowolnego pliku...
http://localhost/source.php?file=/etc/passwd - zawartosc pliku z haslami w systemie linux stoi przed nami otworem...
Jeżeli chcesz cos takiego umieścić w sieci to będziesz się musiał napocić z zabezpieczeniem dostępu do tego...
awides
@hawk
Stronicowanie #1 (krytyczna luka: brak filtrowania tablic... można unieruchomić program biggrin.gif )

Stronicowanie #2: wersja optymalna winksmiley.jpg
  1. <?php
  2.  
  3. class Stronicowanie
  4. {
  5. public static $url;
  6.  
  7. private static function prepare($name) {
  8. return basename(escapeshellcmd(strip_tags($name)));  
  9. }  
  10. private static function strLink($id, &$i, $f, $e)
  11. {
  12. echo '<a href=\"'.self::$url.'?id='.$id.'&st='.$i.'\">[ '.$i.' ]</a> ';
  13. if ($f == 2 && $e > 4)
  14. echo '... <a href=\"'.self::$url.'?id='.$id.'&st='.$e.'\">[ '.$e.' ]</a> ';
  15. }
  16. public static function strPage($id)
  17. {
  18. $wynik = mysql_query(&#092;"zapytanie\"); //z uzyciem $id...
  19. $iloscElementow = mysql_result($wynik, 0, 'zapytanie');
  20.  
  21. $i = $iloscElementow / 15;
  22. gettype($i) == 'integer' ? '' : $i = (int)$i + 1;  
  23. $e = $i;
  24. if($e > 4) $eF = 3; else $eF = $i;
  25.  
  26. @$nrSt = self::prepare($_GET['st']);
  27. if(empty($nrSt)) $nrSt = 1;
  28.  
  29. if($nrSt < $i-&& $nrSt != 1 && $e > 4) $i -= ($i - $nrSt)+1;
  30. else if($i-<= $nrSt && $e > 4) $i -= 3;
  31. else if($nrSt == 1 && $e > 4) $i = 1;
  32. else if($e <= 4) $i = 1;  
  33.  
  34. for ($f = 0; $f < $eF; $f++) {
  35. self::strLink($id, $i, $f, $e);
  36. $i++;
  37. }
  38. }
  39. }
  40. Stronicowanie::$url = 'adres.php';
  41. Stronicowanie::strPage(26);
  42.  
  43. ?>

~45% mniej kodu... efekt ten sam

@Anonimowy
jeżeli chodzi o źródło, możesz złamać zabezpieczenia serwera (jeżeli na serwerze jest gg i do tego używane przez admina lub kogoś innego to sciągasz odpowiednie programy i bierzesz co ci jest potrzebne winksmiley.jpg - oczywiście odradzam takie działania, powinny być raczej testowane na własnym sprzęcie w celu podniesienia bezp.)

innego sposobu raczej nie ma... tylko te nielegalne sad.gif

stronka o szeroko pojętym bezpieczeństwie
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.