Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Bezpieczeństwo mojej strony
Forum PHP.pl > Forum > PHP
benusso
Witam

Chciałbym się poradzić doświadczonych użytkowników czy zabezpieczenia które stosuje są wystarczające do powstrzymania ataków sql injection, i ogólnie co o nich myślicie ?

1) Rzutowanie wszystkich zmiennych liczbowych GET na int

  1. $profilid=intval($_GET['profil']);


2) Cudzysłowa

  1. foreach ($_POST AS $klucz => $wartosc)
  2. {
  3. $wartosc= trim($wartosc);//usuwamy białe znaki
  4. $wartosc= stripslashes($wartosc);
  5. $wartosc=htmlspecialchars($wartosc, ENT_QUOTES);
  6. }
  7. $_POST[$klucz]=$wartosc;
  8. }


3) Zapytanie do bazy wygląda tak

  1. $zapytanie=sprintf("INSERT into users (login,haslo) values ('$login','$haslo')",mysql_real_escape_string($login),mysql_real_escape_string($haslo));


4) Dodatkowo z pól typu chciałbym usunąć niebezpieczne znaczniki

  1. function strip_only($str, $tags) {
  2. if(!is_array($tags)) {
  3. $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
  4. if(end($tags) == '') array_pop($tags);
  5. }
  6. foreach($tags as $tag) $str = preg_replace('#</?'.$tag.'[^>]*>#is', '', $str);
  7. return $str;
  8. }
  9.  
  10. $artykul=strip_only($artykul, '<script>');



Co o tym myślicie ?

Pzdr.
blooregard
Tu masz wszystko na ten temat:
Temat: SQL Injection Insertion
benusso
Na tym się wzorowałem, i nie tylko. I wyszło mi właśnie to co pokazuje.

Czy rzutowanie każdej liczby z GET na intval

a do tego taka funckja

  1. function safe($value){
  2. $value=trim($value);
  3. $value=strip_tags($value,'<strong>');
  4. $value=htmlspecialchars($value, ENT_QUOTES);
  5. $value=mysql_real_escape_string($value);
  6. return $value;
  7. }


użyta na każdej zmiennej GET lub POST

  1. $imie=safe($_POST['imie']);


jest skutecznym zabezpieczeniem przed SQL Injection i XSS ?
Proszę o pomoc, cały dzień nad tym siedzę dziś sad.gif

Pzdr.
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.