String csere Javascript-el, honlapon belül.
Sziasztok!
Egy honlap fórum részéről van szó. A hozzászólásnál nem akarom a felhasználókat szigorúan korlátozni, hogy csak betűket, számokat használhassanak.
Arra gondoltam, hogy a hozzászólásokban minden spec karaktert kicserélek egy ártalmatlan karaktersorozatra pl. %kod1%, majd egy md5 kódolás után írnám be az adatbázisba. Ezzel meg van a védelem is. Ez a része megy az elképzelésemnek.
Hozzászólás listázásánál gondolom Javascript-tel kellene játszani, hogy visszacserélje a kódokat karakterre: pl. %kod1% -> @
Javascriptet még nem használtam, csak tudom, hogy mire való. Szeretnék Tőletek segítséget, egy "Helló Világ" bonyolultságú példát kérni erre a cserére.
■ Egy honlap fórum részéről van szó. A hozzászólásnál nem akarom a felhasználókat szigorúan korlátozni, hogy csak betűket, számokat használhassanak.
Arra gondoltam, hogy a hozzászólásokban minden spec karaktert kicserélek egy ártalmatlan karaktersorozatra pl. %kod1%, majd egy md5 kódolás után írnám be az adatbázisba. Ezzel meg van a védelem is. Ez a része megy az elképzelésemnek.
Hozzászólás listázásánál gondolom Javascript-tel kellene játszani, hogy visszacserélje a kódokat karakterre: pl. %kod1% -> @
Javascriptet még nem használtam, csak tudom, hogy mire való. Szeretnék Tőletek segítséget, egy "Helló Világ" bonyolultságú példát kérni erre a cserére.
Megoldás
Hogyan akarod a kódolást alkalmazni a szövegre? Mikor? Egyáltalán miért nem a szerver oldalon történik a kódolás, dekódolás, ha egyáltalán szükség van rá, mert egyáltalán a létjogosultságát kérdőjelezem meg a kérdésnek.
Mit akarsz MD5-tel csinálni? Mivel az MD5 egy hash-t ad vissza, amiből nem állítható elő az eredeti szöveg, nem értem, mire akarod használni.
Lehet nem volt egyértelmű a megfogalmazás!? Elnézést.
Kódolás:
A felhasználó a hozzászólását beküldi. A form-ot feldolgozó PHP lecseréli a hozzászólás mezőjének speciális karaktereit, és csak ezután rögzítem az adatbázisba a mysql_query(...) függvénnyel a form adatait. Ezzel kivédtem az SQL injection támadásokat is. Ugye mindenhol azt olvasom, hogy ne bízzak a felhasználóban!
Dekódolás:
Ha már szerver oldalon dekódolnék, akkor mivel minden karakter meg van engedve, a hozzászólásba beszúrhatóak HTML tag-ek, pl. egy hatalmas kép beszúrható a hozzászólásba ( <img src="...." /> ), és máris romba dől az oldal szerkezete. Ezért gondoltam azt, hogy egy Javascript függvény dekódolna, és így a böngésző nem dolgozza fel beszúrt HTML kódot(?), hanem csak megjeleníti.
Amúgy köszönöm a válaszokat, kipróbálom a JS dekódolást a mai nap folyamán és megírom, hogy mire jutottam.
SQL Injection
$valtozok
tömbben, akkor:<img src="..." width="300" />
használatával, valamint használhatsz mindenféle HTML szépítő, javító kódot, amivel kigyomlálhatod az invalid HTML elemeket, és a validokat meg megfelelő formára hozod, hogy a HTML szerkezet ép maradjon. Ilyen például a HTML Purifier, illetve még találsz párat, igényeidnek megfelelően.Rájöttem!!
Próbálgattam és rájöttem, hogy rossz irány volt ez a JavaScript. Hiába dekódolok JS-el, amint kicserélődik egy string pl. <b> -re a böngésző újra feldolgozza azt, és megvastagítja az utána következő szöveget. Persze, hogy nem értettétek, hogy mit akartam, teljesen tévúton jártam :$
Viszont nézegettem a honlapok forráskódjait és rájöttem, ha azt akarom, hogy ne dolgozza fel a böngésző a speciális karakterek, akkor azt ilyen formára kell kicserélnem: < (ez ugye a < jel megfelelője).
Ne haragudjatok a téma nyitásért! Arra azért jó volt, hogy segítségetekkel egy-két dolgot megtanuljak a JavaScript -ről. Köszönöm mindenkinek, hogy foglalkoztatok a kérdésemmel!!
replace
A szöveg típusú elemekre tudsz replace függvényt hívni:
Értelemszerűen, ahány dolgot le akarsz cserélni, annyi sorod lesz.
Remélem jól értettem, hogy mit szerettél volna csinálni.
Sok sikert hozzá!
üdv, Gábor
u.i.: ajánlott pl. a www.w3schools.com-on nézegetni a JS leírásokat.