Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Bezpieczeństwo mojej strony
benusso
post 18.04.2010, 14:06:56
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 5.03.2006

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


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.

Ten post edytował benusso 18.04.2010, 14:08:10
Go to the top of the page
+Quote Post
blooregard
post 18.04.2010, 14:19:23
Post #2


Newsman


Grupa: Moderatorzy
Postów: 2 033
Pomógł: 290
Dołączył: 21.12.2007
Skąd: Łódź




Tu masz wszystko na ten temat:
Temat: SQL Injection Insertion


--------------------
Life's simple... You make choices and don't look back...
Go to the top of the page
+Quote Post
benusso
post 18.04.2010, 19:55:31
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 0
Dołączył: 5.03.2006

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


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.

Ten post edytował benusso 18.04.2010, 19:58:27
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 Wersja Lo-Fi Aktualny czas: 24.07.2025 - 21:51