Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] Walidacja zmiennych i ogolnie bezpieczenstwo skryptow
Forum PHP.pl > Forum > Przedszkole
-marekk-
Witam! Powoli się ucze PHP i MYSQL smile.gifsmile.gif Postanowaiłem spróbować napisac własny CMS. Trochę już napisałem i chciałem, żeby nie było błędów w skryptach.
Wrzucę tu kawałek kodu i napiszcie mi czy dobrze sprawdzam zmienne i czy jest to wystarczająco bezpieczne na każdy serwer - cms będzie wrzucany na serwy z różna konfiguracją.

  1. <?php
  2. function zapytanie ($tekst_zapytania)
  3. {
  4. if (!$idzapytania = mysql_query($tekst_zapytania))
  5. echo 'Bład zapytania MySQL, odpowiedĽ serwera: '.mysql_error();
  6.  
  7. return($idzapytania);
  8. }
  9.  
  10. function filtr_mysql ($zmienna)
  11. {
  12. $zmienna = stripslashes($zmienna);
  13. $zmienna = mysql_real_escape_string($zmienna);
  14.  
  15. return($zmienna);
  16. }
  17.  
  18. function filtr ($zmienna)
  19. {
  20. $zmienna = htmlspecialchars($zmienna);
  21. $zmienna = strip_tags($zmienna);
  22. $zmienna = addslashes($zmienna);
  23.  
  24. return($zmienna);
  25. }
  26. ?>


  1. <?php
  2. if (!isset($_GET['id']))
  3. $go = 1;
  4. else
  5. $go = filtr($_GET['id']);
  6.  
  7. if($go == 1) { //cos tam cos tam }
  8.  
  9. $idzapytania = zapytanie('SELECT `tekst` FROM `podstrony` WHERE `id`='.$go);
  10. $wiersz = mysql_fetch_row($idzapytania);
  11. echo $wiersz[0];
  12.  
  13. echo filtr($jakas_zmienna);
  14. ?>
-marek-
ojj sorka smile.gifsmile.gif Drugie okienko z kodem powinno wyglądać tak:

  1. <?php
  2. if (!isset($_GET['id']))
  3. $go = 1;
  4. else
  5. $go = filtr($_GET['id']);
  6.  
  7. if($go == 1) { //cos tam cos tam }
  8. echo $go;
  9.  
  10. echo filtr($jakas_zmienna);
  11.  
  12.  
  13. $text_do_zapisu = filtr_mysql($_POST["text"]);
  14. $idzapytania = zapytanie('UPDATE `podstrony` SET `tekst` = "'.$text_do_zapisu.'" WHERE `id`='.$go);
  15.  
  16. $idzapytania = zapytanie('SELECT `tekst` FROM `podstrony` WHERE `id`='.$go);
  17. $wiersz = mysql_fetch_row($idzapytania);
  18. echo $wiersz[0];
  19. ?>
pyro
  1. <?php
  2. function filtr ($zmienna)
  3. {
  4. $zmienna = htmlspecialchars($zmienna);
  5. $zmienna = strip_tags($zmienna);
  6. $zmienna = addslashes($zmienna);
  7.  
  8. return($zmienna);
  9. }
  10. ?>


to chyba powinno byc:

  1. <?php
  2. function filtr ($zmienna)
  3. {
  4. $zmienna = htmlspecialchars($zmienna);
  5. $zmienna = strip_tags($zmienna); // poza tym jak juz zamieniles znaki na htmlo'wskie (specialchars) to nei ma co wycinac
  6. if (!get_magic_quotes_gpc()) // zmiana
  7. $zmienna = addslashes($zmienna);
  8.  
  9. return($zmienna);
  10. }
  11. ?>
-marek-
noo masz rację. A cos jeszcze ?
pyro
chyba nie tongue.gif można by doskonalić ale jest OK. Pytanie: w jakim edytorze to pisales?
-marek-
pajączek, a czemu pytasz?
pyro
Ciekawość
-marek-
W sumie to piszę tego cms tylko zeby sie nauczyć pisać w php i mysql:) Ale jednak wolałem mieć pewność że będzie zrobione w miare bezpiecznie smile.gifsmile.gif. dzieki za odpowiedz. snitch.gif
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.