Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Czy ten skrypt jest bezieczny?
Forum PHP.pl > Forum > Przedszkole
pawel.ad
Witam!
Zrobiłem sobie GUI do dodawania rekordów do bazy danych, i chce go an stałe wrzucić na FTP, ale żebym tylko ja mógł go dodawać rekordy chce zabezpieczyć ten plik hasłem.

Znalazłem coś takiego w sieci:
  1. <?php
  2.  
  3. /************************************************************************/
  4.  
  5. /* PHP Simple PasswordProtect v1.0 */
  6.  
  7. /* =========================== */
  8.  
  9. /* */
  10.  
  11. /* Written by Steve Dawson - <a href="http://www.stevedawson.com" target="_blank">http://www.stevedawson.com</a> */
  12.  
  13. /* Freelance Web Developer - PHP, MySQL, HTML programming */
  14.  
  15. /* */
  16.  
  17. /* This program is free software. You can redistribute it and/or modify */
  18.  
  19. /* but please leave this header intact, thanks */
  20.  
  21. /************************************************************************/
  22.  
  23. ##########################################################################
  24.  
  25. $password = "admin"; // Modify Password to suit for access, Max 10 Char.
  26.  
  27. ##########################################################################
  28.  
  29. ?>
  30.  
  31. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  32.  
  33. <html>
  34.  
  35. <head>
  36.  
  37. <title>Simple Password Protect - PHP PasswordProtect</title>
  38.  
  39. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  40.  
  41. <style type="text/css">
  42.  
  43. <!--
  44.  
  45. P { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana, Tahoma, Arial}
  46.  
  47. TD { FONT-SIZE: 8pt; COLOR: #000000; FONT-FAMILY: Verdana, Tahoma, Arial}
  48.  
  49. -->
  50.  
  51. </style>
  52.  
  53. </head>
  54.  
  55. <body>
  56.  
  57. <?php
  58.  
  59. print "<h2 align=\"center\">PHP Simple Password Protect</h2>";
  60.  
  61. // If password is valid let the user get access
  62.  
  63. if (isset($_POST["password"]) && ($_POST["password"]=="$password")) {
  64.  
  65. ?>
  66.  
  67. <!-- START OF HIDDEN HTML - PLACE YOUR CONTENT HERE -->
  68.  
  69.  
  70.  
  71. <p align="center"><br><br><br>
  72.  
  73. <b>Congratulations</b><br>you have gained access to the Protected and Secret Area!</p>
  74.  
  75.  
  76.  
  77. <!-- END OF HIDDEN HTML -->
  78.  
  79. <?php
  80.  
  81. }
  82.  
  83. else
  84.  
  85. {
  86.  
  87. // Wrong password or no password entered display this message
  88.  
  89. if (isset($_POST['password']) || $password == "") {
  90.  
  91. print "<p align=\"center\"><font color=\"red\"><b>Incorrect Password</b><br>Please enter the correct password</font></p>";}
  92.  
  93. print "<form method=\"post\"><p align=\"center\">Please enter your password for access<br>";
  94.  
  95. print "<input name=\"password\" type=\"password\" size=\"25\" maxlength=\"10\"><input value=\"Login\" type=\"submit\"></p></form>";
  96.  
  97. }
  98.  
  99. print "<br><br><p align=\"center\">Written by <a href=\"http://www.stevedawson.com\">SteveDawson.com</a></p>";
  100.  
  101. ?>
  102.  
  103. <BR>
  104.  
  105. </body>
  106.  
  107. </html>
  108.  

ale nie jestem przekonany czy jest to bezpieczne.
Moja strona jest o szkolnej lidze koszykówki, więc wątpię żeby ktoś chciał się tam włamać, ale bezpieczeństwa nigdy za wiele.

Czy mógłby ktoś ocenić ten skrypt pod względem bezpieczeństwa lub podać jakiś inny, lepszy?
darko
Ale co tu oceniać? Dwa ify? Trzymanie hasła w skrypcie php w postaci zwykłego tekstu nie jest ani wygodne, ani praktyczne. Użyj haszowania, hasło trzymaj w bazie *) w postaci zahaszowanej np. funkcją sha1, dodaj też sól, jest mnóstwo artykułów na ten temat, są też odpowiednie tematy na tym forum.

*) do połączenia z bazą najlepiej użyć PDO i odpowiednio preparować zapytania i bindować parametry.
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.