Zend Filter és Validation

Az egyik legfontosabb művelet, hogy a webalkalmazásunkban a különböző beérkező adatokat szűrjük, ellenőrizzük, mivel az ellenőrizetlen adat potenciális biztonsági rést jelenthetnek. A következőkben megnézem, hogy a Zend Framework milyen lehetőségeket kínál erre.

Zend_Filter
A Zend_Filter egyrészt egy alap funkciókat megvalósító szűrő osztályokat bocsájt a rendelkezésünkre. Ilyen alap szűrők: Alnum, Alpha, BaseName, Digits, Dir, HtmlEntities, Int, RealPath, StringToLower, StringToUpper, StringTrim, StripTags. Ezeknek a hívása az adott osztály példányosításával történik és a filter metódus meghívásával vagy pedig statikus úton (Zend_Filter::get()). Másrészt több szűrő láncolásához nyújt segítséget, amivel összetettebb szűrést tudunk megvalósítani, illetve egyedi szűrőket is definiálhatunk a Zend_Filter_Interface implementálásával.
Zend_Filter_Input
Az osztály egy interfészt nyújt a töbszörös szűrés és ellenőrzés számára. A felhasználó által bevitt adat nem más, mint egy ismeretlen eredetű kupac adat. A szűrés az alkalmazás számára értelmezhető adatokat engedi be, majd az így keletkezett adat egy ellenőrzésen megy keresztül, amennyiben a teszt eredménye igaz, vagyis a bevitt adat érvényes, a kimenő adatból eltávolítja (‘escape’-eli) azokat a karaktereket, amelyek a feldolgozás során értelmes utasításokká válhatnak. Tehát a működése négy fő részre bontható:
  1. A szűrő és érvényesség vizsgálati feltételek összeállítása. Ez nem más mint egy-egy asszociatív tömb deklarálása.
  2. A folyamatt elvégző osztály példányának létrehozása. Az előzőleg létrehozott szabályok lesznek a Zend_Filter_Input osztály konstruktora.
  3. A bemenő adatok szolgáltatása. A konstruktor harmadik paramétere lehet vagy külön beállíthatjuk a setData metódussal.
  4. Az így előállt érvényes bemeneti adat, illetve az érvényességre vonatkozó jelentés kinyerése. Az isValid metódussal lekérdezhetjük a folyamat eredményét, illetve az üzenetet a getMessages metódussal. Ez utóbbinak saját magunk is adhatunk értéket, illetve egy translator osztály felhasználásával többféle nyelven is előállíthatjuk a kimenetet. Jó ha tudjuk, hogy az összes kimenetre alapértelmezetten a Zend_Filter_HtmlEntities -t is alkalmazza a keretrendszer.
Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter


A bejegyzés kategóriája:Programozás, ZF Certificate and tagged . Vedd fel a kedvencek közé: link. Szólj hozzá vagy hagyj egy trackback-et:Trackback URL.

Szólj hozzá

Hozzászólás küldéséhez Be kell jelentkezni