Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [JavaScript] Zaszyfrowanie źródla strony - problem
Forum PHP.pl > Forum > PHP
kkuubbaa88
witam.

z wielu przyczyn potrzebowalem zaszyfrowac zrodlo mojej strony, aby uzytkownik nie mogl dostrzec ważnych sciezek do plikow oraz ich nazw. postanowilem zrobic bardzo proste szyfrowanie zawartosci poprzez podmiane odpowiednich znakow jakims bezsensownym ciagiem. i tak mam kod, ktory nie moge dojsc dlaczego nie chce zaszyfrowac stron, mimo, ze na oko wyglada, ze jest wszystko dobrze... moze Wy znajdziecie problem...

  1. <?php
  2.  
  3. Function encode($file)
  4. {
  5. if(!$fd = @fopen("$file", "r")){
  6. echo("Nie mogę otworzyć pliku: $file");
  7. return false;
  8. }
  9. $size = filesize($file);
  10. if(!($enc = fread($fd, $size))){
  11. echo("Nie mogę odczytać pliku: $file");
  12. fclose($fd);
  13. return false;
  14. }
  15. fclose($fd);
  16. $enc = strrev($enc);
  17. $len = strlen($enc);
  18.  
  19. $enc = str_replace("<", "0~x~54", $enc);
  20. $enc = str_replace(">", "0~x~14", $enc);
  21. $enc = str_replace(":", "0~x~83", $enc);
  22. $enc = str_replace("=", "0~x~09", $enc);
  23. $enc = str_replace("\"", "0~x~A1", $enc);
  24. $enc = str_replace("'", "0~x~1F", $enc);
  25. $enc = str_replace(".", "0~x~43", $enc);
  26. $enc = str_replace(";", "0~x~0F", $enc);
  27. $enc = str_replace("/", "0~x~FD", $enc);
  28.  
  29. $out = "<script LANGUAGE=\"JavaScript\">";
  30. $out .= "var x=\"$enc\";";
  31. $out .= "x = x.replace(/0~x~54/g, '<');";
  32. $out .= "x = x.replace(/0~x~14/g, '>');";
  33. $out .= "x = x.replace(/0~x~83/g, ':');";
  34. $out .= "x = x.replace(/0~x~09/g, '=');";
  35. $out .= "x = x.replace(/0~x~A1/g, '\"');";
  36. $out .= "x = x.replace(/0~x~1F/g, \"'\");";
  37. $out .= "x = x.replace(/0~x~43/g, '.');";
  38. $out .= "x = x.replace(/0~x~0F/g, ';');";
  39. $out .= "x = x.replace(/0~x~FD/g, '/');";
  40.  
  41. $out .= "var xx=\"\";for(i=x.length-1;i>0;i--){";
  42. $out .= "xx += x.charAt(i);};";
  43.  
  44. $out .= "document.write(xx);";
  45. $out .= "</SCRIPT>";
  46.  
  47. return $out;
  48. }
  49. echo(encode("info.php"));
  50. ?>


Z góry dziekuje za pomoc...
ucho
Wiesz że jeśli kogokolwiek będą obchodzić twoje pliki, to wyciągnie do nich linki choćby z "Informacje o stronie" w Firefoksie? I co konkretnie nie działa? Przydało by się też choć jakieś tagi <html> i head a nie same script, nie mówiąc o choćby doctype. No i oczywiście rozumiesz że plik php wczytany przez fread będzie traktowany jak każdy inny plik tekstowy, i znajdujące się w nim polecenia php nie zostaną przetworzone?
Cezar708
choćbyś nie wiem jak kombinował... to i tak wszystko co prześlesz do przeglądarki musi być przez odczytane, a wszystko co jest możliwe odczytać przez przeglądarkę, na pewno da radę przeczytać przez niepowołane osoby.

W ten sposób nie zabezpieczysz się przed podejrzeniem Twoich ścieżek.

Problem bezpieczeństwa ścieżek musisz rozwiązać jeszcze na poziomie serwera WWW. Po stronie przeglądarki jest już na to za późno!
l0ud
Pomijając sens takiego szyfrowania...

  1. <?php
  2.  
  3. Function encode($file)
  4. {
  5. if(!$fd = @fopen("$file", "r")){
  6. echo("Nie mogę otworzyć pliku: $file");
  7. return false;
  8. }
  9. $size = filesize($file);
  10. if(!($enc = fread($fd, $size))){
  11. echo("Nie mogę odczytać pliku: $file");
  12. fclose($fd);
  13. return false;
  14. }
  15. fclose($fd);
  16. $enc = str_replace("r\n",'',$enc);
  17. $enc = str_replace("\n",'',$enc);
  18. $enc = strrev($enc);
  19. $len = strlen($enc);
  20.  
  21. $enc = str_replace("<", "0~x~54", $enc);
  22. $enc = str_replace(">", "0~x~14", $enc);
  23. $enc = str_replace(":", "0~x~83", $enc);
  24. $enc = str_replace("=", "0~x~09", $enc);
  25. $enc = str_replace("\"", "0~x~A1", $enc);
  26. $enc = str_replace("'", "0~x~1F", $enc);
  27. $enc = str_replace(".", "0~x~43", $enc);
  28. $enc = str_replace(";", "0~x~0F", $enc);
  29. $enc = str_replace("/", "0~x~FD", $enc);
  30.  
  31. $enc = addslashes($enc);
  32.  
  33. $out = "<script LANGUAGE=\"JavaScript\">";
  34. $out .= "var x = \"$enc\";";
  35. $out .= "x = x.replace(/0~x~54/g, '<');";
  36. $out .= "x = x.replace(/0~x~14/g, '>');";
  37. $out .= "x = x.replace(/0~x~83/g, ':');";
  38. $out .= "x = x.replace(/0~x~09/g, '=');";
  39. $out .= "x = x.replace(/0~x~A1/g, '\"');";
  40. $out .= "x = x.replace(/0~x~1F/g, \"'\");";
  41. $out .= "x = x.replace(/0~x~43/g, '.');";
  42. $out .= "x = x.replace(/0~x~0F/g, ';');";
  43. $out .= "x = x.replace(/0~x~FD/g, '/');";
  44.  
  45. $out .= "var xx=\"\";for(i=x.length-1;i>0;i--){";
  46. $out .= "xx += x.charAt(i);};";
  47.  
  48. $out .= "document.write(xx);";
  49. $out .= "</SCRIPT>";
  50.  
  51. return $out;
  52. }
  53. echo(encode('plik.html'));
  54. ?>


Po prostu przed wysłaniem do przeglądarki, trzeba jeszcze usunąć znaki nowej lini oraz dodać slashe smile.gif
em1X
1. nie da się zablokować źródła

2. możesz sobie szyfrować, utrudniać, blokować ale jak ktoś będzie chciał dane wyciągnąć to i tak to zrobi więc - sciana.gif sciana.gif sciana.gif withstupidsmiley.gif

3. ciekaw jestem po co wprowadzasz jakieś tajne ścieżki do kodu sciana.gif sciana.gif sciana.gif sam sobie tworzysz problem.
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.