Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)

[es] :: PHP :: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)

[ Pregleda: 3284 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Pink_Panther

Član broj: 69848
Poruke: 13
*.PPPoE-530.sa.bih.net.ba.



Profil

icon Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)15.09.2006. u 01:15 - pre 214 meseci
Pozdrav svim PHP programerima.

Pošto imam nekoliko stranica koje sam radio u PHPu od kojih su dva portala sa relativno velikim brojem posjeta, želio bi samo da pitam ako ima ikakav način da provjerim da li je čitava stranica ranjiva na PHP injections ili druge oblike zlouporabe.

Pozz svima
 
Odgovor na temu

McKracken
Vladimir Jovanovic
HuxleyDev

Član broj: 465
Poruke: 2941
*.dhcp-pool-ue.sbb.co.yu.

ICQ: 203079925


+7 Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)15.09.2006. u 01:26 - pre 214 meseci
Postoji.

Neko treba da uradi jedan mali security audit od strane nekoga ko se bakce web sigurnoscu il probaj enki od automatizovanih alata kao sto su http://www.acunetix.com/vulnerability-scanner/




Jedino sto moras imati na umu je da ako se rupa otkrije, onda postoji. Ako se ne otkrije, ne znaci da ne postoji.



 
Odgovor na temu

Ivan.Markovic

Član broj: 97763
Poruke: 330

Sajt: security-net.biz


+19 Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)15.09.2006. u 09:52 - pre 214 meseci
Citat:
McKracken
Jedino sto moras imati na umu je da ako se rupa otkrije, onda postoji. Ako se ne otkrije, ne znaci da ne postoji.

Podvlacim.

Acunetix je jedan od najboljih alata za testiranje ali opet uz pomoc alata ne mozes sve da otkrijes ...
“If you think you are too small to make a difference, try sleeping with a mosquito.” - Dalai Lama
XIV
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)16.09.2006. u 14:51 - pre 214 meseci
Intrersantna tema.
Volio bi da cujem vise mislenja i iskustva za sigurnost koda.
Konkretno me zanima koje su mogucnosti da neko napravi stetu preko direktnog zapisivanja podataka iz forme u bazu.
Recimo insert into baza $_POST['bla'].
Ili koje mjere bezbednosti treba preuzeti pri upload fajlova.
Iskreno se nadam da ce se iz ove teme razviti konstruktivni dijalog.
 
Odgovor na temu

Pink_Panther

Član broj: 69848
Poruke: 13
*.PPPoE-2736.sa.bih.net.ba.



Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)16.09.2006. u 15:50 - pre 214 meseci
Citat:
glavince: Intrersantna tema.
Volio bi da cujem vise mislenja i iskustva za sigurnost koda.
Konkretno me zanima koje su mogucnosti da neko napravi stetu preko direktnog zapisivanja podataka iz forme u bazu.
Recimo insert into baza $_POST['bla'].
Ili koje mjere bezbednosti treba preuzeti pri upload fajlova.
Iskreno se nadam da ce se iz ove teme razviti konstruktivni dijalog.

Prvo preko ovog koda INSERT INTO baza $_POST['bla'] može se koristiti SQL injection ako nije obrađen strnig.
Što se tiče uploda failova ja npr. za galerije ograničavam amo na jpg, gif,bmp slike ali pored toga koristim i ograničenje veličine failova i još neke druge sitne modifikacije.
Rizična stvar preko uploada je ako ga npr ne ograničiš na određene failove onda može neko uploadovati PP skriptu sa bilo kojim kodom.
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)16.09.2006. u 16:03 - pre 214 meseci
Za oradzivanje stringa koristim:
addcslashes() i mysql_real_escape_string()
$string = addcslashes(mysql_real_escape_string($_GET['string']));
E sad me zanima koja je opasnost ako se string ne obradi.
Ako moze neki primer kako je moguce da neko izmeni ili izbrise nesto u bazi preko forme za input.
I kako bi izgledao $string koji bi bio stetan za podatke u bazi.

[Ovu poruku je menjao glavince dana 16.09.2006. u 17:23 GMT+1]
 
Odgovor na temu

glavince
Ohrid/Macedonia

Član broj: 66412
Poruke: 246
62.162.91.*

Sajt: ohridnews.com


Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)17.09.2006. u 20:54 - pre 214 meseci
Testirao sam sledeci kod na PHP 4.3.10 i 5.0.4 i izgleda da ove verzije imaju ugradzenu zastitu od nezeljenih mysql injectiona.
Code:

<?php
echo $_POST['u']."<br>";
echo addslashes($_POST['u'])."<br>";
echo mysql_real_escape_string($_POST['u'])."<br>";
echo addslashes(mysql_real_escape_string($_POST['u']))."<br>";
?>
<form name="test" method="post">
<input type="text" name="u" value="' OR ''='">
<input type="submit" name="ok">
</form>

Output:
\' OR \'\'=\'
\\\' OR \\\'\\\'=\\\'
\\\' OR \\\'\\\'=\\\'
\\\\\\\' OR \\\\\\\'\\\\\\\'=\\\\\\\'
 
Odgovor na temu

Nemanja Avramović
Engineering Manager
MENU Technologies
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4391
195.252.99.*

Sajt: https://avramovic.info


+46 Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)17.09.2006. u 23:54 - pre 214 meseci
Citat:
glavince:
E sad me zanima koja je opasnost ako se string ne obradi.
Ako moze neki primer kako je moguce da neko izmeni ili izbrise nesto u bazi preko forme za input.
I kako bi izgledao $string koji bi bio stetan za podatke u bazi.


Na primer, selektuješ korisnika sledećim kodom:

Code:
$user = $_POST['user'];
$pass = $_POST['pass'];
$sql = mysql_query("SELECT FROM users WHERE user = '$user' AND pass = '$pass' LIMIT 1");
...


...ako ti neko u $pass ubaci: ' OR 1=1 OR neko_polje = 'neka_vrednost
dobićeš sledeći query:
$sql = mysql_query("SELECT FROM users WHERE user = '$user' AND pass = '' OR 1=1 OR neko_polje = 'neka_vrednost' LIMIT 1");

...a čim je 1 = 1 onda je uslov ispunjen i korisnik će biti selektovan. Ako obradiš string onda će MySQL vratiti grešku prilikom napada, ili tako nešto

p.s. Ovo pišem napamet ali u principu to je to
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

sale83
Australia
Sydney

Član broj: 41625
Poruke: 729
*.ispone.net.au.



+30 Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)18.09.2006. u 08:36 - pre 214 meseci
Citat:
glavince: Testirao sam sledeci kod na PHP 4.3.10 i 5.0.4 i izgleda da ove verzije imaju ugradzenu zastitu od nezeljenih mysql injectiona.
Code:

<?php
echo $_POST['u']."<br>";
echo addslashes($_POST['u'])."<br>";
echo mysql_real_escape_string($_POST['u'])."<br>";
echo addslashes(mysql_real_escape_string($_POST['u']))."<br>";
?>
<form name="test" method="post">
<input type="text" name="u" value="' OR ''='">
<input type="submit" name="ok">
</form>

Output:
\' OR \'\'=\'
\\\' OR \\\'\\\'=\\\'
\\\' OR \\\'\\\'=\\\'
\\\\\\\' OR \\\\\\\'\\\\\\\'=\\\\\\\'



1)Na to sto mislis da PHP ima zastitu to je ovo(php.ini):
Code:

;PHP.ini
; Magic quotes for incoming GET/POST/Cookie data.
magic_quotes_gpc = On

Naravno to je odlicno :)


2) Nemas potrebu da koristis addslashes u kombinaciji sa mysql_real....
Code:

addslashes(mysql_real_escape_string($_POST['u']))."<br>";


dovoljno je samo:
Code:

mysql_real_escape_string($_POST['u']);



3) Mada I dalje sto se tice ispravnosti ovaj kod nije potpuno siguran:
Code:

mysql_real_escape_string($_POST['u']);


Pitas se zasto ???


Odgovor:

Funkcija mysql_real_escape_string() ocekuje da joj se prosledi STRING dok svako moze da joj proseledi Array i naravno tu ce aplikacija da pukne..


Dobijes ovaku gresku
Code:

Warning: mysql_real_escape_string() expects parameter 1 to be string, array given in ...



Znaci kod i dalje nije siguran ako govorimo o programiranju gde je sve bitno sto se tice S ...


Zato treba proveriti sta je korisnik posalo putem POST/GET/COOKIEs

Code:

//recimo jako dobro dodje ako hoces da izbegnes pomenutu gresku sa Array :)
mysql_real_escape_string(is_string($_POST['u']));


....

Ma o sigurnosti mozes dosta da se pise....

Toliko od mene...
Poz
sale


[Ovu poruku je menjao sale83 dana 18.09.2006. u 09:49 GMT+1]
Sto mozes danas ne ostavljaj za sutra!
 
Odgovor na temu

Pharos
Pančevo

Član broj: 20664
Poruke: 1029
*.3dnet.co.yu.



+2 Profil

icon Re: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)18.09.2006. u 11:22 - pre 214 meseci
Ako znaš engleski, sve što te zanima možeš naći ovde.
77 77 77 2E 65 73 6E 69 70 73 2E 63 6F 6D
 
Odgovor na temu

[es] :: PHP :: Da li se sajt može provjerit na sigurnosne rupe(SQL injections...)

[ Pregleda: 3284 | Odgovora: 9 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.