htmlentities() függvényről
Szerző: BonjaskyEz egy nagyon sokszor használt függvény, mivel a weblapok védelem nélkül célpontjai a támadásoknak.
Tegyük fel, készítesz egy üzenõfalat, és egy az egyben kiíratod azokat a szövegeket amiket a felhasználók beírnak.
Ez a legrosszabb amit csak tehetsz!
Például én ezt írom ki:
<script> function hihi() {
for(i=0 ; i<10 ; i++) {
alert('EZ EGY KELLEMETLEN DÖG, VÉDD JOBBAN A CSETED, ÉS HASZNÁLD A htmlspecielchars() -t');
} } </script>
<input type="button" onclick="hihi()" value="nyomj meg!">
Ennek hatására, az oldalon feljön egy alert ablak, ami már önmagában kellemetlen, de persze ennél sokkal veszélyesebb javascript kódokat is tunánk futtatni, és nem csak mi, hanem bárki.
<script> function hihi() {
for(i=0 ; i<10 ; i++) {
alert('EZ EGY KELLEMETLEN DÖG, VÉDD JOBBAN A CSETED, ÉS HASZNÁLD A htmlspecielchars() -t'); } }
</script>
<input type="button" onclick="hihi()" value="nyomj meg!">
Ugye kellemetlen?
Akár végtelen ciklust is tehetek bele, de van még pár undorító dolog amit megtennének egy rosszul védett üzenõfallal!
De ha kiíratáskor a user szövegére használod a htmlspecialchars() -t, az elozo példa nem fut le, mert a böngészoben a beírt kód HTML entitása jelenik meg.
<?php $szoveg='<script<
function hihi() { for(i=0 ; i<10 ; i++) { alert(\'EZ EGY KELLEMETLEN<br /<
DÖG, VÉDD JOBBAN A CSETED, ÉS HASZNÁLD A
htmlspecielchars() -t\'); } } </script<'; echo htmlentities($szoveg); ?<
Ennek a kimenete htmlentities() miatt nem fut le a HTMl megjelenésével.
A speciális karakterek HTML megfelelokre konvertálódtak át. Felmerülhet a kérdés, hogy ezt a htmlentities() -t mikor kéne alkalmazni?
-Amikor a felhasználó beküldi az üzenetet a mysql táblába/fájl adatbázisba, vagy amikor lekérjük és kiírjuk?
Érdemes úgy hagyni a bejövo adatot ahogy bejön, mert késõbbiekben ha BB kódokkal látnánk el az üzenofalad, akkor a BB kódokat is átalakítaná ez a hasznos függvény. Így mindig a kiíratásnál alkalmazzuk inkább.
A user bejövo adatai amennyiben megjelenhetnek másik felhasználóknál, akkor azokon is alkalmazni kell ezt a függvényt.
2020-01-11 15:37:22