Kezdőoldal » Számítástechnika » Weblapkészítés » SQL injectálás elleni védelem?

SQL injectálás elleni védelem?

Figyelt kérdés

Tudom, hogy ez mire jó, mit tud károsítani stb...

Készítettem egy weboldalt, ami nagyon összetett (RENGETEG php van benne, mivel iszonyatosan sok adatbázis lekérdezést használ).

Mindenhol, ahol csak kellett (ahol észrevettem) használtam 2 dolgot ellene:

1. valami2 = mysql_real_escape_string($valami1)

2. if (preg_match("/^[a-zA-Z0-9]*$/i", $valami2))


Első kérdésem: Ezeken kívül még lehet valamivel védekezni ellene? (Egyáltalán kell-e?)

Második kérdésem: Van-e olyan free program, ami át tudja nekem nézni az összes weboldal részt, és ha talál benne "biztonsági rést", akkor kiírja, hogy "be tudjam foltozni"?

Azért kell a program hozzá, mert közel 120 php fileból áll, aminek a darabja legalább 20-30kb-s. Így rengeteg időbe telne átnéznem egyesével, pontról pontra.



2012. dec. 16. 12:53
1 2 3
 1/21 anonim ***** válasza:

SQL injection ellen úgy tudsz a legjobban védekezni, ha nem magad hekkeled össze a lekérdezéseket stringekből, hanem pl. stored proc-okat használsz, aminek paramétereket adsz át.

Magyarul elkülöníted a programkódot az adatoktól. Ezek után az input validálás illetve a sql escape-elés már csak hab a tortán.

Ha RENGETEG a sql, akkor RENGETEG helyen érdemes személyesen átnézned és átalakítanod.

Lehet automatic tool-okkal is, pl. itt:

[link]

de a legjobb a manuális.

2012. dec. 16. 13:35
Hasznos számodra ez a válasz?
 2/21 anonim ***** válasza:

A saját átnézésnél nincs jobb megoldás.

A védekezésre pedig valóban vannak bevett megoldások, ahogy azt a korábbi válaszoló is említette.


Viszont ha valóban ennyi fájlod van, amit te magad írtál, akkor ott lehet alapból a projekteddel vannak tervezési gondok is.

2012. dec. 16. 17:03
Hasznos számodra ez a válasz?
 3/21 Drone007 ***** válasza:

Nem kell az összes lekérdezésnél escape-lni a stringeket. Csak olyan pontokon, ahol a lekérdezések a felhasználói interakcióból származó stringeket használnak. Elsősorban bejelentkezésnél.

A belső lekérdezéseknél teljesen fölösleges ilyesmivel gyötörni az sql szervert.


A manuális javításnál valóban nincs biztosabb, és ha elég natívan programozol nem lehet gond megtalálni a kritikus lekérdezéseket.

Ha ilyen sok file-ból áll, akkor valóban valamit nagyon nem értesz a php-vel kapcsolatban, de nem ismerem a projektet, úgyhogy ez nem feltétlenül hiba. Próbálj a fájlokra szövegkeresőt ráengedni ha mindenképpen az összes lekérdezést vizsgálni akarod. Notepad++ is képes az összes megnyitott file-ban string-re rákeresni, de a TotalCommander is képes a szöveges fájlok tartalmában kutakodni.


Sok sikert!

2012. dec. 17. 09:16
Hasznos számodra ez a válasz?
 4/21 A kérdező kommentje:
Értem, hát alapból Notepad++al írtam meg az összes részét. Azért van ennyi lekérdezés benne, mert rengeteg funkció található meg benne, nem egy egyszerű kis weboldalról van szó.
2012. dec. 18. 18:33
 5/21 anonim ***** válasza:
de 120 php file hogy jott ossze?
2012. dec. 19. 04:36
Hasznos számodra ez a válasz?
 6/21 A kérdező kommentje:
Annak jelen esetben semmi különösebb jelentősége nincs. Ha tudnád mire készül a project, akkor ezt saját magad is meg tudnád válaszolni. Offokat legyetek szívesek mellőzni, de más segítséget a továbbiakban is szívesen fogadok.
2012. dec. 19. 17:50
 7/21 anonim ***** válasza:

Azt már megkaptad és ez a kérdés is segítség.

Ugyanis hidd el, dolgoztam már egy-két elég nagy cuccon is és ennyi fájl csak NAGYON EXTRÉM esetben keletkezik!

(Illetve nem, tévedek, életem első php-s projektjében volt ennyi kb, de akkor mindent külön pakoltam és most vissza nézve nevetek a saját hülyeségeimen. :) )


Szóóóval gyanús a dolog.

2012. dec. 19. 18:04
Hasznos számodra ez a válasz?
 8/21 PHP de kóder! ***** válasza:
de mondd mar el legyszi, hogy mi ez a 120 file? engem nagyon erdekel
2012. dec. 19. 19:19
Hasznos számodra ez a válasz?
 9/21 A kérdező kommentje:
Nagy vonalakban egy olyan oldal, ahol virtuális pénzzel lehet "játszani" (ne a flash játékokra gondoljunk, hanem a "karakter fejlesztős" játékokra [lásd: world of warcraft, csak ez weben keresztül zajlik, mint a bitefight]), lehetőség van játékokra fogadni, egymás között rengeteg egyéb funkcióval lehet még a virtuális pénzt mozgatni, mint például szerencsejáték rész, kaszinó, és emellett egy közösségi oldal szerepét is ellátja. Mivel a virtuális pénzt többnyire csak valódi pénz ellenében lehet számlára írni, ezért akarom a lehető minél nagyobb biztonsággal ellátni az oldalt. Nem pár órás munkáról van szó, tehát szerintem az magától érthető, hogy nem csak 1-2 lekérdezést tartalmaz. Illetve még annyit hozzáfűznék, hogy a PHP nem CSAK az adatbázissal tud dolgozni.
2012. dec. 20. 14:34
 10/21 anonim ***** válasza:

Sejtettem, hogy ilyesmi lehet a dologban, viszont ha tényleg pénz is lesz benne, akkor bocsi, de azt kell mondanom, hogy az eddigi kódokat dobd ki és kezd előröl!


De komolyan, egy ilyen oldalnak is túl sok a fájl, valami tervezési hiba garantáltan van benne és ha be is foltozol most 1-2 dolgot, még marad ezer másik.

2012. dec. 20. 23:25
Hasznos számodra ez a válasz?
1 2 3

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!