Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zabezpieczenie zmiennej z bazy danych w $_GET
Forum PHP.pl > Forum > PHP
renault12
Hej,

Jak mógłbym tak fachowo zabezpieczyć ten kod przed atakami? Przychodzi mi kilka rozwiązań na myśl ale chciałbym żeby był on odporny na wiele możliwych sposobów.

  1. <table width="100%">
  2. <?
  3. while($wynik = mysql_fetch_array($query)) {
  4. ?>
  5. <tr onclick="window.location='index.php?pokaz=profil&co=wiadomosci&mode=przychodzace&message=<? echo $wynik['id']; ?>">
  6. <td>Od: <? echo $wynik['user_id']; ?>, Temat: <b><? echo $wynik['temat']; ?></b></td><td align="right"> <? echo $wynik['data']; ?></td>
  7. </tr>
  8. <?
  9. }
  10. }
  11. ?>
  12. </table>
  13. <?
  14. $zapytanie = mysql_query("SELECT `wiadomosc` FROM `wiadomosci` WHERE `id` = '".$_GET['message']."'");
  15. ?>
Rochu
polecam ten temacik: SQL Injection/Insertion, Jak zapobiec włamaniu na stronę.

a w skrocie:

  1. <?
  2. $_GET['message'] = mysql_real_escape_string($_GET['message']);
  3. $zapytanie = mysql_query("SELECT `wiadomosc` FROM `wiadomosci` WHERE `id` = '".$_GET['message']."'");
  4. ?>


----
teraz zauwazylem, ze $_GET['message'] odnosi sie do pola id, czyli jest liczba, najprosciej mozesz zabezpieczyc tak ta zmienna:
  1. $_GET['message'] = (int)$_GET['message'];
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.