Htmlentities és az sql injection elleni védekezés
Helló!
Három kérdésem lenne:
1. a HTML tagek teljes blokkolására (hogy ne jelenítse meg őket) elég-e a htmlentities (eddig elégnek bizonyult)?
2. ha bizonyos tageket engedélyezni akarok (pl. <b>, <i>), akkor azt hogyan tehetem meg? van-e erre függvény, vagy azt nekem kell megírnom?
3. hogyan lehet hatékonyan védekezni a rettegett sql injection ellen? mert a névvel, jelszóval nincs gond, de mi van pl. egy fórum hozzászólásával?
■ Három kérdésem lenne:
1. a HTML tagek teljes blokkolására (hogy ne jelenítse meg őket) elég-e a htmlentities (eddig elégnek bizonyult)?
2. ha bizonyos tageket engedélyezni akarok (pl. <b>, <i>), akkor azt hogyan tehetem meg? van-e erre függvény, vagy azt nekem kell megírnom?
3. hogyan lehet hatékonyan védekezni a rettegett sql injection ellen? mert a névvel, jelszóval nincs gond, de mi van pl. egy fórum hozzászólásával?
cross site scriptin, sql injection
<Nincs cím>
Ok, de akkor hogyan oldjam meg, hogy bizonyos tagek megjelenjenek? Saját függyvényt kell hogy írjak? Itt a weblaboron hogyan oldják meg?
3. A felhasználó név és a jelszó esetemben azért nem lehet veszélyforrás, mert mielőtt bármilyen lekérdezést végrehajtanék, ellenőrzöm, hogy tartalmaz-e "kritikus karaktereket".
Úgyhogy marad a szöveg, amire jó lesz-e nekem ez:
1, 2, 3
Ami az SQL injectiont illeti, azért nem szerencsés, amit használnál, mert ha $szoveg véletlenül nem a PHP HTTP bemenetéről jön, hanem mondjuk fájlból, vagy adatbázisból, és be van kapcsolva a magic_quotes, akkor nem lesz rajta semmilyen escape, és ez nem csak betörési, hanem különben is hibalehetőség. Azt szokták csinálni, hogy a magic_quotes hatását a szkript elején visszafordítják (ha különben nem tudják kikapcsolni), és a továbbiakban minden adatot kezeletlennek tekintenek. Amit a magic_quotes csinál, az nem ekvivalens a mysql_real_escape_string() hatásával, ezért sem helyes a megközelítés.
Miért mysql_escape_string() és nem magic_quotes_gpc?
Üdv.: fberci
tessék elolvasni
1,2 rendben, 3...
Hát, ez igaz...
Így jó (jobb)?
egyáltalán nem jobb
De akkor hogyan
Akkor ha nagyon szépen megkérlek elmondanád nekem (is), hogy hogyan is kell ezt rendesen csinálni (ha feltételezzük, hogy a magic_quotes be van kapcsolva)?
dispelMagicQuotes()