Tökéletesítés, de meddig?
A minap azon gondolkodtam, hogy egy alkalmazást milyen szintig érdemes/kell bombabiztossá tenni.
Az OK, hogy szűrjük a bemenetet és ott bombabiztossá (próbáljuk) tenni a rendszert. De mi van egy olyan esettel, amikor pl. egy zárt webalkalmazás/publikus honlnap egy form SELECT elemét adatbázisból tölti fel, majd ebbe a form-ba egy adatbázisban tárolt adathalmazt tölt vissza. Itt be kell állítani a SELECT elem selected tulajdonságát (de ez van a checkbox-szal is, és a radio gombokkal is). Ami elég necces, ha valaki beletúrt az adatbáziba, azaz manuálisan írt át valamit.
A dolog saját fejlesztésű és használatú rendszernél nem jelentkezik, mert vagy nem túrunk az adatbázisba, vagy tudjuk, hogy mit csinálunk. De ha egy másnak készített rendszernél ilyen eset bekövetkezik, akkor mi van.
Persze ez nem rendeltetésszerű használat, ezért talán itt jön a license szerződések "nem rendeltetésszerű használatból eredő károkék nem vállalunk felelősséget" című része.
Ki mit gondol a dologról? Feladata-e egy rendszer tervezőjének, kivitelezőjének az ilyen jellegű hibákat levédeni (annak fényében, hogy akár különösen nagy -- akár anyagi -- kár is keletkezhet a jelenségből)?
■ Az OK, hogy szűrjük a bemenetet és ott bombabiztossá (próbáljuk) tenni a rendszert. De mi van egy olyan esettel, amikor pl. egy zárt webalkalmazás/publikus honlnap egy form SELECT elemét adatbázisból tölti fel, majd ebbe a form-ba egy adatbázisban tárolt adathalmazt tölt vissza. Itt be kell állítani a SELECT elem selected tulajdonságát (de ez van a checkbox-szal is, és a radio gombokkal is). Ami elég necces, ha valaki beletúrt az adatbáziba, azaz manuálisan írt át valamit.
A dolog saját fejlesztésű és használatú rendszernél nem jelentkezik, mert vagy nem túrunk az adatbázisba, vagy tudjuk, hogy mit csinálunk. De ha egy másnak készített rendszernél ilyen eset bekövetkezik, akkor mi van.
Persze ez nem rendeltetésszerű használat, ezért talán itt jön a license szerződések "nem rendeltetésszerű használatból eredő károkék nem vállalunk felelősséget" című része.
Ki mit gondol a dologról? Feladata-e egy rendszer tervezőjének, kivitelezőjének az ilyen jellegű hibákat levédeni (annak fényében, hogy akár különösen nagy -- akár anyagi -- kár is keletkezhet a jelenségből)?
Ne bonyolítsd...
Ilyenkor jön az, hogy minden ilyesféle, a felhasználó által módosítható adatnak megállapítasz egy alapértelmezett értéket, és amennyiben:
akkor az alapértelmezett értékkel dolgozol. Illetve több időd lesz másra, mint hogy agyonbonyolítod az ellenőrzést... :)
adatbázisban szerintem alap
Akkor pontosítanék
Ezzel a táblával töltök fel egy SELECT elemet egy form-ban.
Ha valaki elbarmolja a táblában a key-t (pl. kommandózik a phpMyAdmin segítségével), akkor nem lehet minden esetben visszaállítani a form SELECT elemének SELECTED tulajdonságát. Így hiába töltöm vissza a form-ba az adatokat egy másik táblából, ha nem lesz jó a JOIN, mert nem egyeznek a kulcs mezők, ergó a SELECTED a SELECT első elemére áll.
További pontosítás kellene.
Ha jól értem akkor valami olyasmit szeretnél, hoy van egy selected pl a megyék nevével és attól függően, hogy mit választok ki egy másik selectben megjelennek a városok nevei. Ilyenkor a a városok táblában lesz egy megye_id oszlopod ami beazonosítja a kapcsolatot. Ha erre foreign key constraintot adsz meg akkor nem lehet elbarmolni a kapcsolatot phpmyadminnal se. Illetve el lehet de azért meg kell vele dolgozni :)
Ha nem jó felé tapogatóztam akkor írd meg a konkrét problémát.
Konkrét probléma
Módosításnál megjelenik a form, lekérdezem az adatbázisból az előbbi táblát, majd a kapott adatokkal feltöltöm a SELECT mezőt. Lekérdezem az autó adatlapját, majd ahol kell beállítom a SELECT-ek SELECTED tulajdonságát.
Hülyeséget írtam, mert nem itt van JOIN. Itt az a probléma, ha valaki elbarmolja a kivitelre vonatkozó információk táblájában a kulcsokat, akkor az autó adatlapjának megjelenítésénél és módosításánál nem jelenik meg, vagy hibásan jelenik meg az autó egyik adata.
Az más. Hülyeség ellen nincs
Admin felület?
A kérdés elméleti
A kérdésemre rrd megadta a választ, az ilyen hátulról mellbe "támadásokat" nem lehet kivédeni. Ez már a megrendelő felelőssége.
Természetesen, ha szerkeszthetővé akarom tenni az ilyen adatokat, akkor vagy adok admin felületet, vagy magam végzem el a módosításokat, ez nem téma.