Webalkalmazások biztonsági tesztelése 7

A következő vizsgált kérdéskör a hozzáférési szintek, és jogosultságok biztonsági kérdései. A weblapok 78%-a sebezhető ezen a módon. A hozzáférési szintek biztonsági kockázata azt jelenti, hogy a támadó hozzáfér egy azonos jogosultsági szinten lévő másik felhasználó adataihoz, vagy egy magasabb jogosultságokkal rendelkező felhasználó számára fenntartott funkciókhoz, adatokhoz.

Autocomplete és új elemek

Mint felhasználó szeretem a kényelmesen használható megoldásokat. Mint fejlesztő szeretek kompakt, kézreálló dolgokat létrehozni. Az egyik visszatérő problémám az, hogy hogyan oldjak meg egy helyen egy lenyíló menüt ami felkínálja az eddig rögzített változatokat és ugyanott valahogyan lehetőség nyíljon új elemeket is felvinni. Na erre most feltaláltam a spanyolviaszt.

Fejlessz androidra

Pár tudnivaló ha szeretnél androidra fejleszteni. Szeretném megosztani a tapasztalatokat amelyek nem a kódolással hanem az azt megelőző és azt követő dolgokkal kapcsolatosak. Itt a fejlesszünk-e androidra FAQ.

Verziókövetés

Nemrégiben meghirdettem egy munkát. Az egyik jelentkező akkor tűnt el a semmibe amikor mondtam neki, hogy SVN-ről töltse le a legfrissebb verziót. Gondolom fogalma sem volt róla, hogy mi az és ciki lett volna megkérdezni. A verziókövető rendszerek használata gyors rászokáshoz vezet, szóval a továbbiakat csak saját felelősségre tessék olvasni.

Webalkalmazások biztonsági tesztelése 6

A session / munkamenet kezelés minden webalkalmazás alapvető eleme. Mivel a http kommunikáció állapot nélküli a session segítségével azonosítjuk a usereket a munkamenet során. E nélkül minden egyes oldalletöltéskor újra és újra be kellene kérni a jelszavát. Azonban a gyengén megvalósított session kezelés tágra tudja nyitni az ajtót az illetéktelen behatolók előtt.

JavaScript tömörítés

Újra és újra szembesülnünk kell azzal, hogy a széles sávú internet általános elterjedésének ellenére nem engedhetjük meg azt a luxust, hogy figyelmen kívül hagyjuk a böngésző felé kiküldött adatmennyiséget. A JavaScript – vagy éppen CSS – tömörítés nem új keletű módszer, de ellenére nagyon kevesen élnek vele.

Webalkalmazások biztonsági tesztelése 4

A hacker tanfolyam negyedik részében a hitelesítés megtámadásával fogunk foglalkozni. A weblapok mintegy 67%-ánál található valamiféle biztonsági rés ezen a területen. Valójában a hitelesítés a védekezés frontvonala, de ennek ellenére sokszor a leggyengébb láncszem is.

Webalkalmazások biztonsági tesztelése 3

Hacker tanfolyamunk harmadik részében megkezdjük a támadási és tesztelési módszerek ismertetését. Elsőként a kliens oldali ellenőrzéseket próbáljuk meg kijátszani. A fő szabály amit webfejlesztőként meg kell tanulnunk, hogy a kliens oldali ellenőrzések kizárólag kényelmi eszközök és semmiféleképpen nem alkalmasak biztonsági előlapnak. Ennél fogva mindennemű kliens oldali ellenőrzést meg kell ismételni szerver oldalon is.

Webalkalmazások biztonsági tesztelése 2

Miután megismerkedtünk az alapelvekkel egy oldal feltörésénél az első dolgunk az alkalmazás feltérképezése lesz. A feltérképezés során tulajdonképpen a megtámadható felületeket keressük meg. Két fő dolgunk lesz ennek során. Először is megismerkedünk az alkalmazással és megpróbáljuk a lehető legtöbb háttér információt összeszedni róla, majd második lépésként feltérképezzük a támadási felületeket.

Webalkalmazások biztonsági tesztelése 1

A tömegek életének mind több mozzanatának online irányba való elmozdulásával egyre inkább érzékenyek kell lennünk olyan témákra amelyek eddig esetleg többnyire nem igazán mozgatták meg a fejlesztői fantáziánkat. Az eddig ilyen a webalkalmazások biztonsága. A téma egyre fontosabb és fontosabb lesz és láthatjuk, hogy még az olyan nagyok mint a twitter vagy az amazon is…

API vs API

Egy új webes szolgáltatás bevezetésénél és népszerűsödésében egyre nagyobb és nagyobb súllyal esik latba, hogy a szolgáltatás rendelkezik-e valamiféle API-val és ha igen akkor az hogyan is funkcionál. Nem lehet véletlen, hogy a Google is egyre inkább rászokik arra, hogy minden újdonságát API-val együtt vezet be. Arra keressük ma a választ, hogy a webes szolgáltatásoknak…

Hogyan törjünk fel weblapokat?

Ma egy igen kényes témát szeretnék bemutatni. Kényes mert a biztonsági tanácsok egyben ötletek másoknak arra, hogy hogyan tudnak ténylegesen feltörni oldalakat. Egy webalkalmazás biztonsági tesztelése praktikusan nem jelent mást mint, hogy a webalkalmazás fejlesztője / tesztelője egy rövid időre a támadó bőrébe bújik. Rászántam a hétvégét és egy dologra jöttem rá, egy weblap feltöréséhez…

Felhasználói jogosultságok kezelése – CakePHP 2. rész

Az első részben megnéztük a két hasonló módszer, a vezérlő engedélyekre és a modell engedélyekre alapuló hozzáférés kezelést. A következőkben megnézzük a jogosultságok kezelésére is használható ACL-ek kétféle hasznosítási elvét. Aki eddig esetleg nem tette volna, az olvassa el először a CakePHP szakácskönyv ACL-lel foglalkozó részét.

Felhasználói jogosultságok kezelése – CakePHP 1. rész

Minden komolyabb webalkalmazás fejlesztése során egy igen lényeges momentum a felhasználók hozzáférésének, jogainak kezelése. Annak szabályozása, hogy ki mihez férjen hozzá nem csak biztonsági, hanem működtetési szempontból is fontos. Meglehetősen sok leírás található arról angolul, hogy a problémát hogyan kezeljük a CakePHP keretrendszer használata esetén, de ezek nagy része már elavult vagy csak rész igazságokat…

Felhasználók hitelesítése

Habár a cake szakácskönyve elég részletesen leírja, hogy hogyan kell egy usereket hitelesítő részt megírni 1.2-es cake esetén, de még mindig időről időre keresgélnem kelett amikor egy új projekthez szerettem volna ezt a funkciót megírni. Végül fogtam (és az egyébként jó ideje vázlatként várakozó postot) és megírtam. Íme.

Rendszerátépítés futás közben 2. lépés

Történetünk első lépésében arra kerestem a megoldást, hogy hogyan lehet egy futó rendszert menet közben teljesen átépíteni. A több lehetséges megközelítés közül a béka módszert választottam, azaz azt, hogy szépen elemenként kifejlesztünk egy funkciót és aktiválásakor kiiktatjuk a régi rendszer részt. Lássuk a hogyant!

Mod rewrite magyarázatok

A legnagyobb aktivitás a blogon a rövid url-ekkel foglalkozó bejegyzésnél van. Sok kérdés összegyűlt és úgy láttam, hogy érdemes lenne pár kiegészítést és választ kiemelni egy külön bejegyzésként. Szeretném még itt az elején leszögezni, hogy nem vagyok egy mod_rewrite szakértő, csak épp annyira foglalkozok vele amennyire muszáj. Ennek a leírásnak a célja inkább az, hogy…

A PHP, az Excel meg az utf-8

Egy szövegfájl beolvasása és feldolgozása PHP-val valami olyasmi amit egy 8 éves gyerek 5 perc alatt összehoz. Az a szép a webfejlesztő életében amikor egy ilyen feladattal bármikor sikerülhet egy teljes napot elpiszmognia. A miértre a válasz mindig más és természetesen az operációs rendszerek ködbe vesző csakmer’ típusú történetében lapulnak. Szomorú történetem következik mások okulására.

Tündéri manócskák avagy CSS Sprites

Hallottál már a tündéri CSS manócskákról? Érted őket igazán? A manók igazából nem is olyan picikék, hanem nagyok, pont ez a lényeg. Ezzel a technikával több kisebb képet egy nagyobbal tudsz helyettesíteni és ezután annak csak bizonyos részeit használni épp ott és úgy ahogy a weblap egyes részein kell. A CSS manók legegyszerűbb példája amikor…

MySQL mindenkinek 9

A relációs adatbázisok előnyei közül ma a tranzakciókezelést szolgáljuk fel ebédre. Egy tranzakció tulajdonképpen egy nagy tányér SQL művelet amelyeknek csak együtt van értelme. Tipikus példa erre egy banki átutalás, amelynek során (jó esetben) az egyik számla egyenlegét akkor csökkentjük amikor a másikét növeljük.

MySQL mindenkinek 8

A SELECT-tel már ismerkedtünk az 5. részben, de van jónéhány egyéb parancs és kiegészítés ami gyakran használatos a SELECT utasításokban. Ezek közül küldjük most a boncasztalra azt a párat amit garantáltan minden projektben használni fogunk.

A CSS és a cache

Amikor egy élő weboldalon módosítjuk a CSS fájlt akkor jó eséllyel a látogatók egy ideig a régi CSS-sel fogják látni az oldalt. Ez oda vezethet, hogy bizonyos linkek nem látszanak, a szinek nam passzolnak vagy az oldal teljesen szétesik – attól függően, hogy mit módosítottunk a CSS-ben.

Kódvisszafejtési örömök

Minden webfejlesztővel előfordul, hogy valaki másnak a kódjához kell hozzányúlnia. Még egy átlagos webalkalmazás is annyira összetett, hogy eltarthat egy jó darabig amíg az ember fel tudja térképezni, hogy valójában melyik kódrészlet mire hivatott vagy, hogy mit hol keressen.