Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]Funkcja zabezpieczenia
Forum PHP.pl > Forum > Przedszkole
village_boy
Chciałbym przedstawić do oceny, a właściwie do poprawki tongue.gif prostą funkcję, która ma za zadanie zabezpieczać przed SQL injection i innymi atakami. Oto kod:
Kod
function walidator($zrodlo) {
global $zrodlo;
$zrodlo = stripslashes($zrodlo);
if (eregi("system", $zrodlo) || eregi("UNION", $zrodlo) || eregi("select", $zrodlo) || eregi("include", $zrodlo)) {
$ip = $_SERVER['REMOTE_ADDR'];
$powod = $zrodlo;
$query = "INSERT INTO ban (ip, powod, data) VALUES ('$ip', '$zrodlo', now())";
$result = mysql_query($query) or die("Lol...");
die();
} else {
return 0;
}
}


Co w tej funkcji można jeszcze umieścić - czyt. funkcje, warunki itp. snitch.gif Dzięki z góry za pomoc cool.gif
dtb
jaki to ma sens?:
  1. <?php
  2. function walidator($zrodlo) {
  3. global $zrodlo;
  4. ?>


zamierzasz potem uzywac 'powod' w funkcji eval? jak nie to po co ci include? jak tak to powinnes dodaj jeszcze include_once, require, require_once.

prawde mowiac to wszystko jest bez sensu. nie potrzebnie mieszasz. stripslashes powinno wystarczyc
village_boy
Więc tak:
Pod $zrodlo będę podpinał dane z formularza, które mają wyłapywać słowa takie jak insert itp. Przecież te słowa nie powinny być wykorzystywane np. w księdze gości, prawda smile.gif ?

$powod to jak pole z formularza które zostało przesłane do funkcji. Jeżeli użytkownik będzie próbował SQL Injection, to funkcja wyłapie to i wklei do bazy danych. Gdyby funkcja niesłusznie zbanowała użytkownika, będzie mógł zgłosić się, podać swoje ip i wtedy będzie można rozpatrzyć, czy atakował świadomie czy po prostu użył zabronionego słowa.


Cytat
zamierzasz potem uzywac 'powod' w funkcji eval? jak nie to po co ci include? jak tak to powinnes dodaj jeszcze include_once, require, require_once.

Przepraszam, ale gdzie Ty tam widzisz include? 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.