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

"Injection" ili SQL injection – šta je to?

[es] :: PHP :: "Injection" ili SQL injection – šta je to?

[ Pregleda: 9248 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.29.EUnet.yu



Profil

icon "Injection" ili SQL injection – šta je to?25.03.2004. u 18:22 - pre 244 meseci
Pozdrav svima

Sajt php, MySQl

Šta je "injection".

Administrator provajdera koji "hostuje moj" sajt me upozorio da na sajtu imam "injection" i da ja to potencijalna opasnost.

Neznam o čemu se radi – malo sam pretražio ovaj forum i vidim da se pominje SQL-injection, da li to isto?

Kako da pronađem grešku i kako da je ispravim to jest da se zaštitim?

Bio bih vam zahvalan ako bi mi neko malo pojasnio sve ovo.

Unapred puno hvala
Kusur
 
Odgovor na temu

NetworkAdmin

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.



Profil

icon Re: "Injection" ili SQL injection – šta je to?26.03.2004. u 13:41 - pre 244 meseci
pa sad znas kad koristis forme i varijable koristis da bi napravio query taj query moze biti opasan za tvoju sql bazu jer moze neko postati nesto sto ti nisi predvidio i tako da ti napravi sql injection.

Daj reci gdje kazu da imas injection...?
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
195.252.111.*



Profil

icon Re: "Injection" ili SQL injection – šta je to?26.03.2004. u 16:54 - pre 244 meseci
Šta ja mogu da uradim da sprečim to?

Na sajtu imam spisak vesti, pa sa tog spiska link ka toj vesti:

Na primer:
vest.php?vest_id=12 itd.

a vest_id je stvarno ime polja u tabeli vesti

Treba li da uradim na drugi način?
Kusur
 
Odgovor na temu

Zoran Rašković
Serbia

Član broj: 95
Poruke: 1360
*.vdial.verat.net



+1 Profil

icon Re: "Injection" ili SQL injection – šta je to?26.03.2004. u 19:15 - pre 244 meseci
Pa treba da uradiš sve što možeš da do injectiona ne bi došlo..

Znači sve promenljive koje se prosleđuju sa stranice na stranicu prvo proveriš do detalja, uveriš se da je neka promenljiva tačno to što treba da bude... Ako je sve u redu, pustiš promenljivu u sql query. Ima tu još mnogo caka....
 
Odgovor na temu

ljtruba
BGD

Član broj: 788
Poruke: 60
*.ptt.yu



Profil

icon Re: "Injection" ili SQL injection – šta je to?26.03.2004. u 23:53 - pre 244 meseci
To zapravo znaci da neko putem varijable te recimo id moze da unese nesto nepredvidjeno i da ti se uloguje i hakne ti sajt

Kako to radi
http://www.google.com/search?q=sql+injection

Recimo imas upit
select id, forename, surname from authors

i kad uneses neke vrednosti dobijes
select id, forename, surname from authors where forename = 'john' and surname = 'smith'

e a onda neki drpipac unese
Forename: jo'; drop table authors--
i sve obrise ti tabelu ili usere ili tako nesto

Najbolje je da pogledas google link
kako resiti ovaj problem, pa jednostavno na svaku promenljivu koju ukljucujes u sql upit uradi funkciju addslashes i siguran si
 
Odgovor na temu

ljtruba
BGD

Član broj: 788
Poruke: 60
*.ptt.yu



Profil

icon Re: "Injection" ili SQL injection – šta je to?26.03.2004. u 23:57 - pre 244 meseci
http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.12.EUnet.yu



Profil

icon Re: "Injection" ili SQL injection – šta je to?27.03.2004. u 00:21 - pre 244 meseci
.... uradi funkciju addslashes ...


Kako da uradim ovu funkciju - da li u MySql manual-u ima nešto otome?
Kusur
 
Odgovor na temu

afwt
AF Web Team
Novi Sad/Chicago

Član broj: 8220
Poruke: 337
*.ftn.ns.ac.yu

Sajt: milos.srdjevic.net/blog


+1 Profil

icon Re: "Injection" ili SQL injection – šta je to?27.03.2004. u 03:25 - pre 244 meseci
Umesto:
$q = "SELECT * FROM users WHERE id='$id'";

pises:
$q = "SELECT * FROM users WHERE id='" . addslashes($id) . "'";

ili:
$sql_id = addslashes($id);
$q = "SELECT * FROM users WHERE id='$sql_id'";

ZelenaLutrija.com - Saznajte sve o lutriji za zelenu kartu (doživotni boravak u Sjedinjenim Američkim Državama)
 
Odgovor na temu

Ilija Studen
Novi Sad

Član broj: 3864
Poruke: 859
*.ftn.ns.ac.yu

Sajt: www.activecollab.com


+1 Profil

icon Re: "Injection" ili SQL injection – šta je to?27.03.2004. u 07:34 - pre 244 meseci
Da li ovaj kod resava probleme?

Code:
if( !get_magic_quotes_gpc() ) {
  if( is_array($_GET) ) {
    while( list($k, $v) = each($_GET) ) {
      if( is_array($_GET[$k]) ) {
        while( list($k2, $v2) = each($_GET[$k]) ) {
          $_GET[$k][$k2] = addslashes($v2);
        }
        @reset($_GET[$k]);
      } else {
        $_GET[$k] = addslashes($v);
      }
    }
    @reset($_GET);
  }
  // ... Isto za $_POST i $_COOKIE
  // (c) phpBB group
}


Ako ne resava recite.

BTW: Svi query-ji idu preko klase koju sam napisao za rad sa MySQL-om tako da ih mogu uvek parsirati, proveravati i raditi sa njima sta god hocu pre nego sto se izvrse.
http://www.activecollab.com - Alat za upravljanje projektima
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.32.eunet.yu



Profil

icon Re: 27.03.2004. u 13:27 - pre 244 meseci
Ne ide mi nikako ovo sa '" . addslashes($id) . "'"

Da li neko moze da mi pomogne evo primera:

Tri tabele grupe, pod_grupe, vesti

Prava strana - spisak grupa za koje ima vesti

grupe.php:
Code:

SELECT *
FROM vesti, grupe
WHERE vesti_grupa=grupa_id
GROUP BY vesti_grupa



link ka strani pod_grupe.php:
<a href="pod_grupe.php?grupa_id=<?php echo $row_rsvesti['grupa_id']; ?>"></a>

Druga strana - spisak pod_grupa u okiru trazene grupe za koje ima vesti

pod_grupe.php:

Code:
SELECT *
FROM pod_grupe, vesti
WHERE grupa_id=colname and pod_grupa_id=vest_pod_grupa_id
GROUP BY vest_pod_grupa_id


Code:
colname=$HTTP_GET_VARS['grupa_id']


Treca strana spisak vesti u pod_grupi... itd.
Kusur
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: "Injection" ili SQL injection – šta je to?27.03.2004. u 15:06 - pre 244 meseci
ilija: to deluje ok, osim ako negde drugde nisi otvoren za injection.. tako nešto i ja imam, samo na drugom mestu, tj pri prosleđivanju parametara sql upita..

Citat:
ljtruba:
e a onda neki drpipac unese
Forename: jo'; drop table authors--
i sve obrise ti tabelu ili usere ili tako nesto


to naravno ne može (kao što sam već par puta objašnjavao), zato što mysql ne dozvoljava unos više upita pri jednom pozivu funkcije mysql_query().

naravno da na ovo treba paziti, ali ne treba to raditi sa netačnim i preuveličanim primerima..

 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: "Injection" ili SQL injection – šta je to?29.03.2004. u 13:49 - pre 244 meseci
Ilija to je ok, samo meni je logičnije da se isto (ja ipak koristim funkcije sql_int, sql_string, sql_bool) nalazi pri sastavljanju upita nego da radiš proveru GET parametara. Na primer negde ti nešto iz GET-a može trebati bez kosih crta ;), ovako samo usporavaš sve. Plus, šta ako nešto čitaš iz baze što je umetnuto na drugom mestu, pa ako čitaš datoteku, i na kraju šta ako prenosiš serijalizovan niz kroz GET? ;)

Više upita se ne može od jednom izvršiti, ali ima lepih fora sa "OR 1=1" pri proveri user/pass kombinacije ;)
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

ljtruba
BGD

Član broj: 788
Poruke: 60
*.ptt.yu



Profil

icon Re: "Injection" ili SQL injection – šta je to?30.03.2004. u 10:17 - pre 244 meseci
Citat:
-zombie-:
ilija: to deluje ok, osim ako negde drugde nisi otvoren za injection.. tako nešto i ja imam, samo na drugom mestu, tj pri prosleđivanju parametara sql upita..

Citat:
ljtruba:
e a onda neki drpipac unese
Forename: jo'; drop table authors--
i sve obrise ti tabelu ili usere ili tako nesto


to naravno ne može (kao što sam već par puta objašnjavao), zato što mysql ne dozvoljava unos više upita pri jednom pozivu funkcije mysql_query().

naravno da na ovo treba paziti, ali ne treba to raditi sa netačnim i preuveličanim primerima..


OK, ali ja primer nisam dao samo za mysql vec za sql uopste.
nisam ja izmislio taj primer vec sam ga kopirao sa nekog sajta, kontam da je to najbolji nacin da se coveku objasni sta je to "injekcija" :)
A za mysql_query() se slazemo naravno
 
Odgovor na temu

NetworkAdmin

Član broj: 4445
Poruke: 609
*.bbone.utic.net.ba.



Profil

icon Re: "Injection" ili SQL injection – šta je to?30.03.2004. u 10:44 - pre 244 meseci
Citat:
Goran Rakić:
Više upita se ne može od jednom izvršiti, ali ima lepih fora sa "OR 1=1" pri proveri user/pass kombinacije ;)


Da potpuno si u pravu, samo ko li pise takav kod da mu SQL pravi verifikaciju... obicno bi trebalo povaditi podatke iz baze pa porediti sa get post varijablama...
 
Odgovor na temu

Kusur
Grafički dizajner
Beograd

Član broj: 2485
Poruke: 208
*.43.EUnet.yu



Profil

icon Re: "Injection" ili SQL injection – šta je to?30.03.2004. u 19:31 - pre 244 meseci
Ja sve radim u Dreamweaver-u, tako da kada se "pozovem" na neku varijabilu iz forme Dreamweaver mi ispred "Select" ubaci sledeći kod:

Code:
}
$colname1_aktivan = "1";
if (isset($HTTP_POST_VARS['jmbg'])) {
  $colname1_aktivan = (get_magic_quotes_gpc()) ? $HTTP_POST_VARS['jmbg'] : addslashes($HTTP_POST_VARS['jmbg']);
}

Kusur
 
Odgovor na temu

Ilija Studen
Novi Sad

Član broj: 3864
Poruke: 859
*.ftn.ns.ac.yu

Sajt: www.activecollab.com


+1 Profil

icon Re: "Injection" ili SQL injection – šta je to?07.04.2004. u 15:29 - pre 244 meseci
http://www.spidynamics.com/papers/SQLInjectionWhitePaper.pdf
http://www.activecollab.com - Alat za upravljanje projektima
 
Odgovor na temu

[es] :: PHP :: "Injection" ili SQL injection – šta je to?

[ Pregleda: 9248 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

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