Hirdetés
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Real Racing 3 - Freemium csoda
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- Gurulunk, WAZE?!
- sziku69: Szólánc.
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Brogyi: CTEK akkumulátor töltő és másolatai
- Sub-ZeRo: Euro Truck Simulator 2 & American Truck Simulator 1 (esetleg 2 majd, ha lesz) :)
- kraftxld: Diáklaptop - Dell Latitude 3140 - Királyunk ajándéka
Új hozzászólás Aktív témák
-
Taci
addikt
Amit terveztem, és ami idő közben még képbe került az XSS elleni védelemben, azzal nagyjából készen vagyok (ezer köszönet a sok segítségért, sztanozs!), összeállt a függvény.
Ki szeretném kérni a véleményeteket, hogy van-e még esetleg valami aspektus, amit nem vizsgálok, és kellene / jó lenne / megérné.
A témában az utóbbi napokban/hetekben átolvasott cikkek, átnézett YT-videók alapján összeszedtem egy példa listát, hogy mik ellen kell leggyakrabban védekezni, milyen támadások/próbálkozások érhetnek. Ezt kiegészítettem még ebből a listából azokkal, amiket úgy láttam, korábban még csak hasonlót sem próbáltam: XSS Vectors Cheat Sheet.
Jelenleg csak keresőmezőben van user inputom, azt első körben kliens oldalon validálom, de persze megkerülhető, szóval azt a kérelmet ezen is végig ellenőriztetem.
Ezen kívül RSS-ekből érkező következő 3 típusú tartalmat vizsgálok vele:
- title (cím)
- description (rövid leírás)
- link (weblap és kép)Így néz ki a függvény, lépésről lépésre:
0. lépés (a függvény hívása előtt):
html_entity_decode($abc, ENT_QUOTES);1. Ha van találat a
&#párosra, akkor preg_replace használatával kiegészíteni az esetlegesen hiányzó pontosvesszőt (by sztanozs)
2. Pár példában az unicode kódolással kapcsolatban is találatot, így vizsgálom azu+és\utalálatokat. Ha van találat, mb_convert_encoding segítségével dekódolás.
3. Rákeresek a<karakter összes lehetséges formájára, és ha megtalálta,<-re cseréli.
4. Ha linket ellenőriz, rákeres pár előre beállított, nem linkbe illő karakterre, pl.( ) \ ; , < > { } @ $aztán még a különböző féle aposztrófokra és idézőjelekre is.' " ‘ ’ ” “. Itt csak logbejegyzést csinálok egyelőre, hogy vizsgáljam, hogyan működik. Ha a megfelelő találatokat ez is jól szűri, akkor már ez is átbillentheti az xss_found-kapcsolót.
5. Aztán ezeket a nem normál idézőjeleket és aposztrófokat a "normál" változatukra cseréltetem.
6. Ugyanígy a\n-t és\r-t (és máshogy kódolt változatukat is) is lecserélem, de üres sztringre. Ugyanígy a&Tab-ot és a null karaktert is\0.
7. Ezek után van egy nagyon hosszú lista, amiben a "dirty content" van listázva. Ezekre a kifejezésekre keresek, és ha bármelyikre találat van, átbillent egy változóértéket, és az adott komplett bejegyzés skippelve lesz. A listában az összes HTML tag benne van, illetve az összes event handler is (pl. onError). Plusz persze a "javascript", "script", "noscript" stb. stb sztringek is. Az összes, amit a példákon keresztül támadhatónak láttam, és amiknek semmi helyük se egy linkben, se egy normál szövegben (cím, leírás). (Ha mégis fals pozitív találat lenne, majd külön kezelem.)
8. Ha linket vizsgál, és nincs dirty content-re találat, akkor a biztonság kedvéért megvizsgálom mégfilter_varsegítségével (FILTER_VALIDATE_URL).Ez a függvény tartalma. Ezután a korábban már megírt és használt processzek vannak, ahol még a linkkel kapcsolatban fontos, hogy ha a protokol csak
http, akkor kiegészítihttps-re, ellenőrzi, hogy valid-e, és ha igen, https-ként tárolja, amúgy skippeli.Ami átment minden szűrőn, az így lesz (_decode-dal) tárolva. Megjelenítésre pedig minden esetben minden érték
htmlspecialchars($xyz, ENT_QUOTES); használatával lesz átadva.Lehet, erősen overkill, de az is lehet, hogy hiányzik még valami, amit nem vettem észre, hogy figyelni kellene. Lehet, soha senki nem fog "megtámadni", de jobb félni és felkészülni.
Van esetleg még valami, amire figyelnem kellene?
Köszönöm.
Új hozzászólás Aktív témák
- Sweet.tv - internetes TV
- Linux Mint
- Sony MILC fényképezőgépcsalád
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Vicces képek
- Egyéves Gemini AI Pro a Google-től a magyar egyetemistáknak is
- Számítógépház-választás 2025: airflow, kompatibilitás és hibák
- Real Racing 3 - Freemium csoda
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- További aktív témák...
- Fujifilm 33/1.4 R LM WR
- Crucial P310 1TB M.2 2230 NVME PCI-E 4.0 x4 - Új, bontatlan - 7100-6000 MBs - Eladó!
- Használt NVME M2 SSD-k - 1000 GB tól 2048GB-ig Samsung Hynix Intel Kioxia WD Micron Toshiba
- WD Black SN770M 2TB M.2 2230 NVME PCI-E 4.0 x4 - Új - 5150-4850 MBs - Eladó!
- Gamer PC 2025, Komplett gép, Garanciális alkatrészek, BESZÁMÍTÁS
- BESZÁMÍTÁS! Acer KG241QSbiip 24 165Hz TN FHD 1ms monitor garanciával hibátlan működéssel
- Logitech Lift for MAC ergonomikus egér
- HIBÁTLAN iPhone 13 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS3755, 91% Akkumulátor
- Microsoft: Windows / Office / Server / Stb.
- AKCIÓ! DELL PowerEdge R630 rack szerver - 2xE5-2660v4 (28c/56t, 2.0/3.2GHz), 96GB RAM, 4x1G, áfás
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő

