Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: filtrowanie znakow
Forum PHP.pl > Forum > PHP
patrycjusz
mam takie pytanie...
oto funkcyjka sprawdzajaca w moim systemie poprawnosc znakow
co byscie jeszcze do niej dopisali aby zapobiec wlamom....[php:1:33b34b701a]<?php
function sprawdz_znaki()
{
if(isset($_POST['login'])){
$login=$_POST['login'];
$len=strlen($login);
if($len<=16)
{
if(ereg("^[0-9a-zA-Z]{1,16}$",$login))
{
$this->login = $login;
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
else
{
return false;
}
}
?>[/php:1:33b34b701a]
z gory dzieki za podpowiedzi. :wink:
scanner
[php:1:73b1380a88]<?php
function sprawdz_znaki()
{
$_POST['login'] = (get_magic_quotes_gpc()) ? $_POST['login'] : addslashes( $_POST['login'] );
$boolCorrect = isset( $_POST['login'] ) ? true : false;
$boolCorrect = ereg( "^[0-9a-zA-Z]{1,16}$", $_POST['login'] ) ? true : false;
if( $boolCorrect )
{
$this->login = $_POST['login'];
{
return $boolCorrect ;
}
?>[/php:1:73b1380a88]
adwol
Cytat
[php:1:0a8a69c405]<?php
$boolCorrect = isset( $_POST['login'] ) ? true : false;
?>[/php:1:0a8a69c405]

Te linia jest zbędna. Po pierwsze i tak w następnej linii nadpisujesz wartość $boolCorrect, a po drugie ereg z tym regexpem dla pustego ciągu się i tak nie dopasuje.
patrycjusz
hmm... dzieki.
Teraz się zastanawiam jak by tu zfilitrować na podobnej zasadzie cała tablice $_GET...
ma ktosik jakis pomysł?
scanner
Cytat
Ta linia jest zbędna.
No fakt smile.gif
adwol
Cytat
Teraz się zastanawiam jak by tu zfilitrować na podobnej zasadzie cała tablice $_GET...

Dołóż sobie parametr do funkcji sprawdz_znaki() odpowiadający sprawdzanemu ciągowi a potem:
[php:1:921a5f1ce8]<?php
$zle = array();
foreach ($_GET as $k => $v)
if (!sprawdz_znaki($v))
$zle[] = $k;

print "Złe pola to: " . implode(' ', $zle) . "n";
?>[/php:1:921a5f1ce8]
patrycjusz
Witam.
Postanowiłem zając sie dalej moim problem i spłodziłem cosik takiego :wink:
[php:1:1aa45f8678]<?php
function sprawdz_zmienna($v)
{
$v = (get_magic_quotes_gpc()) ? $v : addslashes($v);
$boolCorrect = ereg( "^[0-9a-zA-Z]{1,16}$", $v) ? true : false;
if($boolCorrect)
{
return true ;
}
else
{
return false;
}
}

function sprawdz_tablice()
{
if(!empty($_GET))
{
foreach ($_GET as $k => $v)
if (sprawdz_zmienna($v) == false)
{
return false;
}
else
{
return true;
}
}
else
{
return true;
}
}
?>[/php:1:1aa45f8678]
Przepraszam że to takie rozbite ale lubie miec czytelny kod i po pierwsze..
Zwraca mi bład że funkcja sprawdz_zmienna() nie istnieje po drugie czy dobrze myśle... chciałbym osiągnąć jakieś zabezpieczenie przed drobnymi hakerkami bo w stosunku do tych najlepszych i tak nie mam szans smile.gif .
Z góry wielkie dzięki za pomoc i koncepcje smile.gif .
Pozdrawiam patS
P.S. troszeczke zmodyfikowalem kod w poscie
patrycjusz
hmmm...
dodam jeszcze że wszystkie te funkcje znajduja sie w skrypcie od logowania i jezeli zwracaja prawde to skrypt przechodzi dalej...
ale w tej chwili zwraca mi że funkcja nie istnieje hmmm
Cytat
Fatal error: Call to undefined function: sprawdz_zmienna() in line...

No ale przecierz jest ta funkcja..
hmmm troszeczke zmienilem i nie zwraca juz nie prawdy ale jak próbuje wstawic jakakolwiek zmienna getem to skrypt mi sie wywala i pokazuje powyzszy blad...
BzikOS
[php:1:737f662c98]<?php
function sprawdz_tablice() {
if(!empty($_GET)) {
foreach ($_GET as $k => $v) {
$v = (get_magic_quotes_gpc()) ? $v : addslashes($v);
if(!ereg( "^[0-9a-zA-Z]{1,16}$", $v))
return false;
}
} else {
return false;
}
}
?>[/php:1:737f662c98]

To tak na szybko bez sprawdzania...
patrycjusz
Wielkie dzieki chłopaki. :wink:
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.