Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Czy ten kod jest bezpieczny?
Forum PHP.pl > Forum > Przedszkole
Michal2451
Cześć! Zrobiłem stronę z logowaniem, rejestracją i... rangami/uprawnieniami.
Przy każdym użytkowniku jest kolumna ranga.
1 = user
5 = mod
9 = admin

I teraz mam np. lewe menu:

  1. <?php include('config1.php');
  2.  
  3. if( ("$t[1]") == 1) {
  4. echo ' <div class="box">
  5. <h3>Panel</h3>
  6. <ul>
  7. <li><a href="#">Dodaj</a></li>
  8. <li><a href="#">Usuń</a></li>
  9. <li><a href="#">Zmień</a></li>
  10. <li><a href="#">Mój profil</a></li>
  11. <li><a href="logi.php">Logs/Newsy</a></li>
  12. </ul>
  13. </div>';
  14. } elseif( ("$t[1]") == 9) {
  15. echo ' <div class="box">
  16. <h3>Panel</h3>
  17. <ul>
  18. <li><a href="login.php">Logowanie</a></li>
  19. <li><a href="register.php">Rejestracja</a></li>
  20. <li><a href="logi.php">Logs/Newsy</a></li>
  21. <li><a href="#">Dodaj</a></li>
  22. <li><a href="#">Usuń</a></li>
  23. <li><a href="#">Zmień</a></li>
  24. <li><a href="#">Mój profil</a></li>
  25. </ul>
  26. </div>';
  27. echo ' <div class="box">
  28. <h3>Użytkownicy</h3>
  29. <ul>
  30. <li><a href="users.php">Zarejestrowani</a></li>
  31. <li><a href="znajdz.php">ZnajdĽ</a></li>
  32. <li><a href="usun.php">Usuń</a></li>
  33. <li><a href="edytuj.php">Ranga</a></li>
  34. </ul>
  35. </div>';
  36. } elseif( ("$t[1]") == 5) {
  37. echo ' <div class="box">
  38. <h3>Panel</h3>
  39. <ul>
  40. <li><a href="#">Strefa moderatora</a></li>
  41. <li><a href="#">Dodaj</a></li>
  42. <li><a href="#">Usuń</a></li>
  43. <li><a href="#">Zmień</a></li>
  44. <li><a href="#">Mój profil</a></li>
  45. <li><a href="logi.php">Logs/Newsy</a></li>
  46. </ul>
  47. </div>';
  48. } else {
  49. echo ' <div class="box">
  50. <h3>Panel</h3>
  51. <ul>
  52. <li><a href="login.php">Logowanie</a></li>
  53. <li><a href="register.php">Rejestracja</a></li>
  54. <li><a href="logi.php">Logs/Newsy</a></li>
  55. </ul>
  56. </div>';
  57. };
  58.  
  59.  
  60.  
  61.  
  62.  
  63. ?>


I plik config1.php:
  1. <?php include('login.php');
  2. $sql_conn = mysql_connect('xxx', 'xxx', 'xxx')
  3. or die('Błąd podczas łączenia z bazą danych');
  4.  
  5.  
  6. $zapytanie = "SELECT `login`,`ranga` FROM `users` WHERE `login`='$nazwa'";
  7. $idzapytania = mysql_query($zapytanie);
  8. $t = mysql_fetch_row($idzapytania);
  9. ?>

I kod zakładek dla odpowiednich osób:
  1. <?php include('config1.php');
  2.  
  3. if( ("$t[1]") == 9) {
  4.  
  5. Treść dla administratora
  6.  
  7. } else {
  8. echo '<center><BR><BR><BR>To nie miejsce dla ciebie...';
  9. echo '<meta http-equiv="refresh" content="1; url=index.php">';
  10. };
  11. ?>


Czy to jest bezpieczne? Tak żeby jakiś zwykły user nie mógł zobaczyć zakładek dla administratora oraz do nich wejść.

ps. ja jestem autorem kodu, żeby nie było, że kopiuję od kogoś winksmiley.jpg
cojack
Podaj adres strony, to Ci zaraz pokaże jakie to jest bezpieczne.
daros17
Poczytaj o sql injection
Michal2451
Niestety nie wdrożyłem jeszcze tego tongue.gif

Ale jeśli to był sarkazm to mnie oświeć co chciałeś zrobić happy.gif
Albo co byś robił, gdybyś chciał udowodnić, że to jest niebezpieczne tongue.gif
cojack
$zapytanie = "SELECT `login`,`ranga` FROM `users` WHERE `login`='$nazwa'";

i w polu $nazwa byłoby =
"; 'DROP TABLE `login`;--":

amen.
wookieb
Cytat(Michal2451 @ 3.01.2011, 20:45:45 ) *
Niestety nie wdrożyłem jeszcze tego tongue.gif

To po co się pytasz skoro nie znasz jakichkolwiek podstaw bezpieczeństwa?
http://forum.php.pl/index.php?showtopic=30...stwo+skrypt%F3w
I jeszcze jeszcze parę tematów o SQL injection na forum.
Michal2451
Kto pyta nie błądzi, a fakt, że jestem początkujący wyjaśnia całą sprawę winksmiley.jpg
A ten serwis jest do celów edukacyjnych.
Mephistofeles
PDO + prepared statements, tak na przyszłość. Do tego wywal te echa, zamknij tag PHP i normalnie pisz HTML.
wookieb
Cytat(Michal2451 @ 3.01.2011, 20:53:44 ) *
A ten serwis jest do celów edukacyjnych.

Edukacyjny nie znaczy, że za każdym razem będziemy powtarzać podstawy, które są na forum opisane.
Michal2451
Napisałem to "tak tylko", żeby było wiadome, że się uczę.
Nie było to ważne i tym bardziej nie było warte twojej odpowiedzi.
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.