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

Sigurnost pri MySQL-u, provjeri ulaznih podataka...

[es] :: PHP :: Sigurnost pri MySQL-u, provjeri ulaznih podataka...

[ Pregleda: 1591 | Odgovora: 16 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Alexandar_d
Alexandar

Član broj: 44699
Poruke: 66
*.PPPoE-2149.sa.bih.net.ba.



Profil

icon Sigurnost pri MySQL-u, provjeri ulaznih podataka...15.08.2006. u 17:10

Gledao sam po Netu i forumu ali nisam mogao da nadjem cjelinu. Da li bi neko mogao objasniti i napisati codove koji su potrebni za zastitu i sigurnost kod osnovnih php radnji? Npr. sta se sve treba filtrirati, pregledati, zastiti npr. kod konakcije i koristenja MySQL? Pa onda npr. koje sve korake treba preduzeti kod provjere ulaznih podataka koji se kasnije koriste u PHP-u... Jer nigdje nema to objedinjeno na jednom mjestu sve te zastite, provjere i sl. Meni je to sada potrebno a mislim da ce i drugima trebati.
Evo ja dajem neke od provjera koje ja znam:

Code:

/* Provjera 1: za prazno polje */
if ($text=="")
    {
    include "greska1.php";
    die;
    }
       else 
       {
       ....

/* Provjera 2: za duzinu */
    if (strlen($text) > $neka_vrijednost)
     {    
    include "greska1.php";
    die;
    }
    else
    {        
    .....
/* Provjera 3: za specijalne znakove */
    $spec_chars = "\s\-\;\:\*\+\.\(\)\[\]\{\}\?\,\"\'\#"; 
        if (preg_match("#[".$spec_chars."]#i", $text))
        {
        include "greska1.php";
        die;
        }    
        else
        {
                 .....

/* Provjera 4: za integer (ako je potrebno)*/
        function myIsInt ($x) 
            {
               return (is_numeric($x) ? intval($x) == $x : false);
            }
            function Test($x) 
            {
                   if (myIsInt($x) == false)
                {
                include "greska1.php";
                die;
                   }
               }


Ja znam da ovoga ima jos tonu narocito za MySQL i neke osjetljive stvari. Meni licno treba za MySQL i ako je potrebno jos neke provjere kod ulaznih podataka?
Ili bolje receno, sta je sve potrebno za "maksimalnu sigurnost" u PHP skriptama?
AleXandar
15.08.2006. u 17:10 

Ivan.Markovic

Član broj: 97763
Poruke: 134
*.157.nat-pool-kg.sbb.co.yu.

Sajt: www.security-net.biz


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...15.08.2006. u 21:57
http://phpsec.org/projects/guide/sr/index.html
http://www.security-net.biz/docs/im_safe().txt


[Ovu poruku je menjao Ivan.Markovic dana 16.08.2006. u 00:06 GMT+1]
15.08.2006. u 21:57 

bojan_bozovic
Sir Lancelot

Član broj: 29028
Poruke: 2317
*.pat-pool.le.sbb.co.yu.



Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 01:06
dovoljan to je addslashes

1. ako neko proba sql injection - ne uspeva
2. ako numericki argument nije u opsegu baza vraca 0 redova
3. ako neko da pogresan argument pa se napravi upit sa pogrsnim tipom podatka, baza vraca gresku

To sto ti radis je nepotrebno komplikovanje, tj. tupljenje:
16.08.2006. u 01:06 

afwt
AF Web Team
Novi Sad/Chicago

Član broj: 8220
Poruke: 317
*.hsd1.il.comcast.net.

Sajt: milos.srdjevic.net/blog


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 01:24
TOPLO PREPORUCUJEM knjigu:
php|architect's Guide to PHP Security
Ilia Alshanetsky

Pokriva ovu temu, a i jos gomilu! VRLO KORISNO SHTIVO! ;-)
ZelenaLutrija.com - Saznajte sve o lutriji za zelenu kartu (doživotni boravak u Sjedinjenim Američkim Državama)
16.08.2006. u 01:24 

Ivan.Markovic

Član broj: 97763
Poruke: 134
*.pat-pool.kg.sbb.co.yu.

Sajt: www.security-net.biz


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 09:09
Citat:
bojan_bozovic: dovoljan to je addslashes

1. ako neko proba sql injection - ne uspeva
2. ako numericki argument nije u opsegu baza vraca 0 redova
3. ako neko da pogresan argument pa se napravi upit sa pogrsnim tipom podatka, baza vraca gresku

To sto ti radis je nepotrebno komplikovanje, tj. tupljenje:


1. Ovo nije tacno, najbolje je koristiti mysql_real_escape_string() jer u nekim slucajevima (nekim character setovima)
je moguce preskociti addslashes.

3. Ovde opet treba da se vodi racuna o nacinu prikazivanje greske zbog XSS napada i zbog otkrivanja podataka o bazi.
Uglavnom, zbog sigurnosti, je potrebno hendlovati errorima i prikazivati neku svoju error stranicu.
16.08.2006. u 09:09 

bojan_bozovic
Sir Lancelot

Član broj: 29028
Poruke: 2317
*.pat-pool.le.sbb.co.yu.



Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 09:37
XSS injection je drugo, kada korisnik moze da ubaci u html svoje, npr. postuje link ka svome sajtu, ali XSS nema veze sa bazom ima li?
16.08.2006. u 09:37 

sale83
Aleksandar Ervacanin
Full Time Student & Full Time Zaposlen ( IT Suppo..
Sydney

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

Sajt: www.serbiansite.com


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 10:01
Citat:
bojan_bozovic: XSS injection je drugo, kada korisnik moze da ubaci u html svoje, npr. postuje link ka svome sajtu, ali XSS nema veze sa bazom ima li?


Mislis na XSS Cross Site Scripting LOL

http://212.200.81.65/testMysql.php

Klikni na Lista korisnika...

Znaci u bazu podataka je ubacen
Code:

<script>alert(document.cookie)</script>




Ali to je sve greska zato sto ne filtrira i proverava sta je korisnik uneo..



Inace sto se tice SQL inekcija najvaznije da da koristis:
Code:

mysql_real_escape_string()



Poz
sale
PHP/MySQl/SQL/VB.NET/JAVA/JSP/Servlet/MSSQLServer/MSAccess/Perl
COBOL/JCL/CICS -> IBM Mainframe
Nortel/Cisco/SideWinder
16.08.2006. u 10:01 

Ivan.Markovic

Član broj: 97763
Poruke: 134
*.pat-pool.kg.sbb.co.yu.

Sajt: www.security-net.biz


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 10:09
Citat:
bojan_bozovic: XSS injection je drugo, kada korisnik moze da ubaci u html svoje, npr. postuje link ka svome sajtu, ali XSS nema veze sa bazom ima li?


Da XSS je kad se ubaci svoj script kod tamo gde ne bi trebalo. Ja sam hteo da kazem da u slucaju kada se pojavi greska u bazi i ako se onda ista stampa (html) korisniku i to sa npr prosledjenim parametrima u koje smo pre toga stavili neki svoj script kod moguce je izvrsiti XSS napad. I zbog toga je potrebno pravilno hendlovati greskama.

Citat:
sale83
...
Ali to je sve greska zato sto ne filtrira i proverava sta je korisnik uneo..
...


Ili zato sto se pravilno ne eskejpuje kada se vraca korisniku ili kada se upisuje u bazu ...

Citat:
sale83
Inace sto se tice SQL inekcija najvaznije da da koristis:
Code:

mysql_real_escape_string()

...


Ovo sam vec rekao ... a i evo jedan link: http://shiflett.org/archive/184
16.08.2006. u 10:09 

sale83
Aleksandar Ervacanin
Full Time Student & Full Time Zaposlen ( IT Suppo..
Sydney

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

Sajt: www.serbiansite.com


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 10:19
Ivan.Markovic

PS- Obezbedi svoj sajt od SQL inekcija!!!!!!

Mozda gresim a ako vec se bavis sigurnoscu onda nebi trebao da radis onako kao sto si uradio
na sajtu sto ti je u podpisu...

Prikazivanje strukture SQL query-ja nikako nebi trebalo da se prikazuje na onaj nacin sto ti radis..


Poz
sale

PHP/MySQl/SQL/VB.NET/JAVA/JSP/Servlet/MSSQLServer/MSAccess/Perl
COBOL/JCL/CICS -> IBM Mainframe
Nortel/Cisco/SideWinder
16.08.2006. u 10:19 

sale83
Aleksandar Ervacanin
Full Time Student & Full Time Zaposlen ( IT Suppo..
Sydney

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

Sajt: www.serbiansite.com


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 10:27
Evo sad sam zvanicno utvrdio da ti sajt ima sledece propuste:

Code:

1) SQL inekcije
2) XSS 

Dalje necu da gledam...


Kad se vec bavis sa sigurnoscu prvo obezbedi svoj sajt..


Poz
sale
PHP/MySQl/SQL/VB.NET/JAVA/JSP/Servlet/MSSQLServer/MSAccess/Perl
COBOL/JCL/CICS -> IBM Mainframe
Nortel/Cisco/SideWinder
16.08.2006. u 10:27 

bojan_bozovic
Sir Lancelot

Član broj: 29028
Poruke: 2317
*.pat-pool.le.sbb.co.yu.



Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 11:23
Code:
O RLY?


Probaj XSS. Nema.

Editovano da m Google ne crawluje error strane.

[Ovu poruku je menjao bojan_bozovic dana 16.08.2006. u 12:58 GMT+1]

Sale83 ima linka u tvom postu :(

[Ovu poruku je menjao bojan_bozovic dana 16.08.2006. u 12:58 GMT+1]
16.08.2006. u 11:23 

sale83
Aleksandar Ervacanin
Full Time Student & Full Time Zaposlen ( IT Suppo..
Sydney

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

Sajt: www.serbiansite.com


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 11:29
Citat:
bojan_bozovicO RLY?

Probaj XSS. Nema.



Naravno da ima !!

Malo bolje testiraj i videces da imas XSS..


PHP/MySQl/SQL/VB.NET/JAVA/JSP/Servlet/MSSQLServer/MSAccess/Perl
COBOL/JCL/CICS -> IBM Mainframe
Nortel/Cisco/SideWinder
16.08.2006. u 11:29 

bojan_bozovic
Sir Lancelot

Član broj: 29028
Poruke: 2317
*.pat-pool.le.sbb.co.yu.



Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 11:40
Postojao je jedan XSS exploit na mome sajtu, vezan za postovanje web sajta mojih korisnika, ispravno escapeovano omogucavalo je da se ubaci javaskript u HTML. Ali to bese sa prvom verzijom sajta. Ako mislis da si u pravu, daj mi URL i navedi koja forma ima problem. Moji korisnici ne mogu ubaciti XSS kao svoj tekst, npr ovako http://maestitia.net/index.php?u=134 ali su mogli prteko linka.
Sto se tice login forme, dozvoljeno je A-Z a-z i 0-9 i - i _ i razmak, pa tu ne moze biti problema.
16.08.2006. u 11:40 

Ivan.Markovic

Član broj: 97763
Poruke: 134
*.pat-pool.kg.sbb.co.yu.

Sajt: www.security-net.biz


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...16.08.2006. u 11:40
@sale83

Lol, poslao si mi pp a nisam gledao da si poceo da se razbacujes ovde ...
Ok odgovorio sam ti tamo zbog cega je tako ono sto si nasao a i da je ne moguce na bilo
koji nacin iskoristiti to.

Mislim da smo krenuli o offtopic tako da je bolje da se povucem ... :)
16.08.2006. u 11:40 

Shejn
Srbija

Član broj: 11830
Poruke: 193
*.static.beocity.net.



Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...05.09.2006. u 10:49
@sale83
e bas ti hvala matori za ovo http://212.200.81.65/testMysql.php, ja sam ovu skriptu okacio kao bedni primer jednog pocetnika (mene), bez ikakvih provera unosa, a sada se svi navadili pa traze kako da mi upisu neko s***** u bazu.

I sta uopste ima da kopiras ovaj link iz jedne teme u drugu!

05.09.2006. u 10:49 

m_k
Sarajevo [BiH]

Član broj: 29364
Poruke: 303
*.PPPoE-4386.sa.bih.net.ba.

Sajt: www.mkscripts.net


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...05.09.2006. u 19:27
Da ne otvaram novu temu mozete li ovdje napisati koje su jos poznate metode napada (pored xss i sql injectiona)?
May the force be with you...
05.09.2006. u 19:27 

Ivan.Markovic

Član broj: 97763
Poruke: 134
*.static.kg.sbb.co.yu.

Sajt: www.security-net.biz


Profil

icon Re: Sigurnost pri MySQL-u, provjeri ulaznih podataka...09.09.2006. u 12:04
Postoji mnogo metoda napada ali evo jos jedne u ovom (injection) fazonu: http://www.securiteam.com/securityreviews/5WP022K75O.html
09.09.2006. u 12:04 

[es] :: PHP :: Sigurnost pri MySQL-u, provjeri ulaznih podataka...

[ Pregleda: 1591 | Odgovora: 16 ]

Postavi temu Odgovori

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