Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php/MySql] Bezpieczeństwo skryptu
Ciap-Ciak
post
Post #1





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 31.03.2006
Skąd: Muszyna

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


Mam pewnie skrypt logowania. Chciałbym abyscie ocenili jego bezpieczoeństwo:
index.php
  1. <?php 
  2.  
  3.  
  4. include('includes/config.php');
  5.  
  6. mysql_connect($db_host,$db_user,$db_pass) or die ("Nie mogę nawiązać połączenia z bazą danych!");
  7. mysql_select_db($db_name);
  8.  
  9. if(empty($username) || empty($password))
  10. {
  11. echo("Zaloguj się:<br />");
  12. include("forms/login.php");
  13. echo("<br />Lub <a href=\"forms/register.php\">zarejestruj się</a>");
  14. echo("<br />Lub <a href=\"page1.php\">wejdz na podstrone nr1</a>");
  15. }
  16. else
  17. {
  18. #
  19. #Logowanie
  20. #
  21. $sql = "SELECT * FROM `v_users` WHERE `user_password`='".$password."' AND `user_username`='".$username."'";
  22. $results = mysql_query($sql);
  23.  
  24. if(mysql_num_rows($results))
  25. {
  26. $getid = "SELECT * FROM `v_users` WHERE `user_username`='".$username."' LIMIT 1";
  27. $getidexec = mysql_query($getid);
  28. while($r=mysql_fetch_array($getidexec)){
  29. $userid = $r[userid];
  30. }
  31. $_SESSION['logged']=1;
  32. }
  33. else
  34. {
  35. die("Nazwa użytkownia i/lub hasło są błędne!");
  36. }
  37. #
  38. #---------------------------------------------------------
  39. #
  40. }
  41.  
  42. if(isset( $_SESSION['logged'])) 
  43. { 
  44.  
  45. echo("Jestes zalogowany<br /><br />");
  46. echo("<br /><a href=\"page1.php\">wejdz naa podstrone nr1</a><br><br>");
  47.  
  48. #...
  49. #TRESCI DOSTEPNA PO ZALOGOWANIU
  50. #...
  51.  
  52. include("forms/logout.php");
  53. }
  54.  
  55. ?>


includes/config.php
  1. <?php
  2.  
  3. #Polaczenie z baza danych
  4. $db_host = "localhost";
  5. $db_user = "root";
  6. $db_pass = "";
  7. $db_name = "database";
  8.  
  9. #Login/Logout
  10. $username=$_POST['login'];
  11. $password=$_POST['pass'];
  12. $logout=$_POST['logout'];
  13.  
  14. $username=strip_tags($username);
  15. $password=strip_tags($password);
  16.  
  17. $username=str_replace(" ","",$username);
  18. $password=str_replace(" ","",$password);
  19.  
  20. $username=str_replace("%20","",$username);
  21. $password=str_replace("%20","",$password);
  22.  
  23. $username=addslashes($username);
  24. $password=addslashes($password);
  25.  
  26. $password=md5($password);
  27. ?>


Czy ten skrypt jest wystarczajaco bezpieczy czy moze powinenem w nim cos zmienic - dodac?
Go to the top of the page
+Quote Post
dyktek
post
Post #2





Grupa: Zarejestrowani
Postów: 240
Pomógł: 0
Dołączył: 18.01.2004
Skąd: rzeszów / kraków

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


troche duzo tego filtrowania, no i nie czyścisz tym wszystkiego
poczytaj troche tutaj

Ten post edytował dyktek 18.05.2006, 19:37:02
Go to the top of the page
+Quote Post
Ciap-Ciak
post
Post #3





Grupa: Zarejestrowani
Postów: 33
Pomógł: 0
Dołączył: 31.03.2006
Skąd: Muszyna

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


przeczytalem pierwsze 2 strony powyzeszego tematu i dowiedzialem sie tylko tego ze mysql_escape_string" title="Zobacz w manualu php" target="_manual jest w miare dobrym zabezpieczeniem a co do reszty "zabezpieczen" to jedni mowi ze warto a inni ze bezuzyteczne (i nie wiem wkoncu czy stosowac ktores z tych zabezpieczen) a wracajac do mysql_escape_string" title="Zobacz w manualu php" target="_manual. w MySql nie jestem zbyt obeznany. czytalem w manualu opis tej funnkcji ale nie zabardzo ja zrozumialem i nie bardzo tez wiem jak powinienem ja zastosowac do mojego kod.

btw. w tym linku czytalem ze poprzez $_GET[XXX] mozna wlamywac sie (poprzez wykonywanie zapytan sql), czy w metodzie $_POST[xxx] jest to tez mozliwe?
Go to the top of the page
+Quote Post
Master Miko
post
Post #4





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Oczywiście. Hacker tworzy formularz z $_POST....
mysql_escape_string została specjalnie stworzona do "wkładania" danych z POST i GET do bazy danych.

Tak jak napisałeś to jest dobre:

  1. <?php
  2.  
  3. $username=str_replace(" ","",$username);
  4. $password=str_replace(" ","",$password);
  5.  
  6. $username=str_replace("%20","",$username);
  7. $password=str_replace("%20","",$password);
  8.  
  9. ?>



Tak samo function.htmlspecialchars.php" title="Zobacz w manualu php" target="_manual zostało stworzone do wyświetlania na stronie wartości z formularzy.

PS. a to nie jest przypadkiem: mysql_real_escape_string" title="Zobacz w manualu php" target="_manual questionmark.gif

Ten post edytował Master Miko 18.05.2006, 21:03:04


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 07:59