Mit jelent az, hogy egy rendszer robusztus?

Azt írják valahol az interneten, hogy “A robusztus weboldal sokáig használható (tartós)” és (ugyanott) azt is, hogy
“A szabványok fejlődnek, de az alapjai nem változnak. A helyesen kódolt, klasszikus tipográfiával készült weboldal nemcsak néhány évig, hanem több mint tíz évig is működik alapvető változtatások nélkül.”

A geocaching.hu oldalról a nem szakmabeli felhasználó is megállapítja, hogy “több mint tíz évig is működik alapvető változtatások nélkül”. Legjobb tudomásom szerint az oldal alapvető változáson nem esett át kb. 2004. óta. Nem tudom, hogy ez mennyire volt tudatos döntés akkoriban. Inkább arra hajlok, hogy kényszer (erőforrás-hiány) és motiválatlanság (vezetői akarat hiánya) áll a jelenség mögött.

Viszont a robusztusságnak én egy másik értelmezését is érvényesnek gondolom. Az angol nyelvű Wikipédiában ezt írják a Robustness (computer science) szócikkben (szabad fordítás): “A számítástechnikában a robusztusság a számítógépes rendszereknek az a képessége, hogy kezelni tudja a végrehajtás közben előforduló hibákat és kezelni tudja a hibás bemeneteket.

Mi adja ennek a kérdésnek az apropóját? A minap a geocaching.hu fórumának egy nyilvános – bár csak regisztrált felhasználók által elérhető – topikjában az oldal forráskódjához hozzáférő fejlesztők (informális adat, a hivatalos oldalon nem szerepelnek) a következő bizalmas adatokat tették közzé:
A ‘state’ olyan adatmező, melynek tartalma bármi lehet, kitöltésekor a processz egy megye/országnév lista alapján csak ajánlást tesz, az lesz, amit a beíró gondol.
(Old Eye | 2020.06.05 16:54:42)
Ez azért nem teljesen igaz. Csak a listából lehet/kell választani, tehát nem teljesen szabad szöveges mező.
(gusty| 2020.06.06 13:40:38)
WEB-es felületen az igaz, hogy megyét/országot csak listáról lehet választani, de azt lehet választani, amit akarunk, nincs ellenőrzés.
(Old Eye | 2020.06.06 15:33:23)


Mivel a felelőtlen felelős a szokásos Fairy-bashinggel illusztrálta állítását, helyénvaló volt a hivatkozott ládaoldalon demonstrálni az érzékeny infók közzétételének súlyosságát. Lusta voltam programozgatni, így először a legegyszerűbb, böngészőben bárki számára hozzáférhető eszközzel próbálkoztam. (Lényegében minden elterjedt böngészőhöz tartoznak fejlesztői eszközök.) A ládaoldalt szerkesztésre megnyitva valami jelentéktelen adatot módosítottam, hogy a Web Inspector megmutassa az elküldött fejléceket és tartalmat. Ezeket bemásoltam a (több böngészőhöz elérhető) RestMan bővítmény megfelelő mezőibe.
1. Kérés típusa (legördülő): POST
2. URL: https://www.geocaching.hu/caches.geo?action=update&id=149
3. Headers:
Cookie uid={bizalmas adat}; PHPSESSID={bizalmas adat}; _ga={bizalmas adat}; toggle_com=on; username=Fairy; cryptpwd={bizalmas adat}; logged_user_1= {bizalmas adat}; logged_user_2={bizalmas adat}; last_user_id=26; toggle_mod=off
Content-Type application/x-www-form-urlencoded
4. Body RAW: {sok adat}state=Pest+(Old+Eye+kedv%C3%A9%C3%A9rt){sok adat}
…és az elküldés után kb. 2000 ms-mal megkapjuk a módosított ládaoldalt:

Tanulságok? Bizonyára van több is, de kettőt ki kell emelnem:
1. 2020-ban egy beviteli mező adattartalmának korlátozásához rettentően gyenge próbálkozás egy legördülő menüt kirakni a weboldalba, vakon megbízva a felhasználóban. Szerveroldalon feltétlenül ellenőrizni kell, hogy a felhasználó tényleg a mi listánkból választott-e vagy kreatívkodott” kicsit.
2. Ha tudod, hogy az oldalad kódjának vannak gyengécske részei, akkor nem teszed közzé a sebezhetőséget a befoltozás előtt.

1,039 total views, 1 views today

Kategória: GC, GCDev | A közvetlen link.

Vélemény, hozzászólás?