|
SQL baze podataka - Sponzor: Baze-Podataka.net MySQL, MSSQL, Oracle, Access, ODBC. Ako imate problem brže i preciznije ćete dobiti odgovor ako priložite strukturu tabela ili skript koji kreira tabele i puni ih test podacima umesto što to problem opisujete samo rečima. Sponzor: Baze-Podataka.net - Blog o bazama podataka |
|
Alati teme | Način prikaza |
|
17. 03. 2007. | #1 | |
dinosaurus
Master
Datum učlanjenja: 29.12.2005
Lokacija: Nova Engleska
Poruke: 636
Hvala: 79
263 "Hvala" u 66 poruka
|
Citat:
|
|
17. 03. 2007. | #2 |
Milan Cvejic
Wrote a book
|
Veruj mi ima potrebe da sve proveravash.
Ajde saljem ti PM u toku dana sa detaljnim objashnjenjem.
__________________
http://weevify.com |
17. 03. 2007. | #3 |
član
Certified
Datum učlanjenja: 11.07.2006
Poruke: 84
Hvala: 1
2 "Hvala" u 2 poruka
|
^ ako može to detaljno objašnjenje takođe na pm, ili na forum ? thx!
proučavao sam tu problematiku, ali uvek može da se nauči nešto novo. |
17. 03. 2007. | #4 |
Milan Cvejic
Wrote a book
|
Malo detaljnije...
==- Ubrizgavanje SQL koda -==
SQL injection se zasniva na neautorizovanom i uglavnom malicioznom menjanju samog sql querija bez potrebe da sam napadac ima pristup izvornom kodu same aplikacije. Iako je nacinjena zashtita od sql injection napada u samom autorizacionom delu aplikacije, ukoliko neki drugi parametar nije sanitizovan, to znaci da ce napadac i dalje moci da nedozvoljeno menja podatke, i eventualno dobije vece privilegije od onih koje trenutno ima na sistemu. Posto uglavnom teoriju niko ne voli, prelazimo odmah na prakticni deo Primer: Dakle imamo tabelu korisnici, koja ima tri polja. Kôd:
+-----------+----------------------+-----------------+ | ID | uname | pass | +-----------+----------------------+-----------------+ index.php PHP kôd:
e sada ukoliko imamo sledeci zahtev na skriptu koju smo malo pre napravili Kôd:
http://www.example.com/index.php?uname=admin&passwd=123456 Kôd:
select * from korisnici where uname='admin' and pass='123456' bilo koje vrednosti na bilo kom parametru mi direktno menjamo query. Kôd:
http://www.example.com/index.php?uname='admin&passwd=123456 Kôd:
select * from korisnici where uname= ''admin' and pass='123456' jer queru nije ispravan. Ali shta ce biti ukoliko prosledimo sledece parametre nasoj skripti.. Kao username stavimo Kôd:
' OR '1'='1 dobijamo sledeci query. Kôd:
select * from korisnici where uname= '' OR '1'='1' and pass='' OR '1'='1' Uspeli smo da se logujemo na sistem bez ikakvih znanja o korisnickom imenu i sifri. Uglavnom je prvi zapis u tabelama za autorizaciju korisnicko ime administratora, dobijemo dakle administratorske privilegije. Posto trenutno nemam vremena da opsirnije obradim ovu temu, shto se tice zashtite pominjem samo to da treba proveravati svaku vrednost koju korisnik prosledi skripti, koristeci neke predefinisane funkcije kao shto je mysql_safe_escape_string() ili koristiti neka pravila (regularne izraze) da bi ste osigurali da korisnik unosi ispravne podatke. Off Topic: Posto uskoro registrujem firmu, koja ce se baviti sigurnoshcu, kada zavrshim svu papirologiju, organizovacu neki brifing vezan za ovu temu. U svakom slucaju vise detalja ce biti objavljeno kada sve bude pripremljeno. Pozdrav.
__________________
http://weevify.com |
|
|
Slične teme | ||||
Tema | Početna poruka teme | Forum | Odgovori | Poslednja poruka |
Kod kojem ne treba dokumentacija... | mangia | Opušteno | 10 | 12. 10. 2009. 21:27 |
Glasanje: prevencija "SQL injection" | Dragi Tata | SQL baze podataka - Sponzor: Baze-Podataka.net | 26 | 20. 09. 2009. 00:02 |
Treba mi secondary DNS | misk0 | Web aplikacije, web servisi i software | 1 | 18. 06. 2009. 20:47 |
Treba nam Robocop :) | bluesman | Opušteno | 3 | 17. 12. 2007. 18:21 |
PHP email injection | MorenoArdohain | Programiranje | 0 | 07. 01. 2006. 22:32 |