htmlentities() függvényről

Szerző: Bonjasky

Ez 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

Értékelés 0.0 /5