Kezdőoldal » Számítástechnika » Weblapkészítés » Ez mennyire biztonságos?...

Ez mennyire biztonságos? Milyen biztonsági rések lehetnek?

Figyelt kérdés

Egy oldalon javascript-tel állítok elő ilyen szűrési adatokat:

oszlop1 < 10,

oszlop2 = 30,

oszlop3 BETWEEN 10 AND 20,

oszlop4 LIKE '%hello%'


Ezeket tömbként megkapja a php, kitörli az összes (a BETWEEN-t, az AND-et és a LIKE-ot kivéve) sql kulcsszót. Továbbá minden elemen elvégzem a htmlspecialchars() függvényt, ami a '-ket nem alakítja át, csak a többit, hogyha szöveg lenne a keresési érték.

Aztán ezeket összerakja egy ilyen sztringgé:

"SELECT * FROM tabla1 WHERE oszlop1 < 10 AND oszlop2=30 AND oszlop3 BETWEEN 10 AND 20 AND oszlop4 LIKE '%hello%'"

Én magamtól idáig jutottam.

Ez így mennyire biztonságos sql befecskendezés ellen?



#szűrés #weboldal #adatbázis #php #SQL #sql befecskendezés
2017. nov. 3. 11:07
 1/10 anonim ***** válasza:

Sql befecskendezés ellen? :)


Használj mysqli-t vagy PDO-t, és előkészített lekérdezéseket.

2017. nov. 3. 11:24
Hasznos számodra ez a válasz?
 2/10 A kérdező kommentje:
Bocs, elolvastad a leírást egyáltalán?
2017. nov. 3. 11:32
 3/10 A kérdező kommentje:

Ja bocs, azt nem írtam le, hogy lekérdezem a táblázatot.

Csak az a lényeg, hogy az SQL utasítás meglegyen. Onnan már megy.

2017. nov. 3. 11:35
 4/10 anonim ***** válasza:
Elolvastam, megbocsájtok.
2017. nov. 3. 11:38
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:

Az első válasz elég jól kifejti a témát szerintem:

[link]


Egyébként sokkal jobb lenne ha az sql script-et nem a PHP rakná össze, hanem az sql server írnál rá függvényt. Nagyságrendekkel könnyebb karbantartani, könnyebb újrahasznosítani a kódot és még egyéb előnyei is vannak.

2017. nov. 3. 11:59
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

A számok ne legyenek "csupaszon".

Ted azt is aposztrofok közé, vagy ellenőrizd hogy INT -e a bevitel.

Csak mert ha pl. oszlop1 < 10

Ahol a 10 változó, könnyedén SQL injektálható, mivel nincs ' -jelek közé zárva.

2017. nov. 3. 12:42
Hasznos számodra ez a válasz?
 7/10 A kérdező kommentje:
Köszönöm szépen a válaszokat!
2017. nov. 3. 14:53
 8/10 A kérdező kommentje:
Különben a 10 hogy lehetne változó? A legtöbb programozási nyelvben a változók első karaktere csak _ és betű lehet.
2017. nov. 3. 14:54
 9/10 anonim ***** válasza:
100%
Azért változó, mert a táblázatot alapul véve, bárki postként beküldhet a 10 helyett egy SQL parancs töredéket, amit a programod stringként összerak.
2017. nov. 3. 14:58
Hasznos számodra ez a válasz?
 10/10 A kérdező kommentje:

Na, most megcsináltam json-nel és most már ilyet küld a szervernek:

[

{"col_name": "epitesi_ev", "filter_type": "between", "from": "10", "to": "20"},

{"col_name": "fogatszam", "filter_type": "equal_to", "data": "20"},

{"col_name": "volt_e_energetikai_felujitas", "filter_type": "equal_to", "data": "1"}

]

Köszönöm a válaszokat!

2017. nov. 13. 19:49

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!