{"id":2535,"date":"2026-01-23T01:58:23","date_gmt":"2026-01-23T01:58:23","guid":{"rendered":"https:\/\/steveprojects.com\/?p=2535"},"modified":"2026-01-23T02:12:29","modified_gmt":"2026-01-23T02:12:29","slug":"character-design-cartoon-inspiration-copy-copy","status":"publish","type":"post","link":"https:\/\/steveprojects.com\/index.php\/2026\/01\/23\/character-design-cartoon-inspiration-copy-copy\/","title":{"rendered":"MorphLab fejleszt\u00e9se &#8211; Dashboard \u00e9s Frontend"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Az alkalmaz\u00e1sunk t\u00f6bbr\u00e9teg\u0171, ami t\u00f6bb dolgot csin\u00e1l egyszerre, de nagyon fegyelmezetten: egyr\u00e9szt ad egy stabil, biztons\u00e1gos webes bel\u00e9p\u00e9si \u00e9s felhaszn\u00e1l\u00f3kezel\u00e9si \u201ekaput\u201d, m\u00e1sr\u00e9szt a h\u00e1tt\u00e9rben lefuttat egy tudom\u00e1nyos jelleg\u0171 k\u00e9panal\u00edzist, ami telepeket\/objektumokat detekt\u00e1l, m\u00e9r, kategoriz\u00e1l, \u00e9s a v\u00e9g\u00e9n mindent egy ellen\u0151rizhet\u0151 riportcsomagba rendez. A dokumentum alapj\u00e1n az eg\u00e9sz rendszer \u00fagy van \u00f6sszerakva, hogy informatikusi szemmel is \u00e9rthet\u0151 legyen, ugyanakkor a m\u00e9r\u00e9si \u00e9s reproduk\u00e1lhat\u00f3s\u00e1gi logika a matematikusoknak is megfoghat\u00f3.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img fetchpriority=\"high\" decoding=\"async\" width=\"944\" height=\"903\" src=\"https:\/\/steveprojects.com\/wp-content\/uploads\/2026\/01\/morphlab_screenshot.jpg\" alt=\"\" class=\"wp-image-2539\" style=\"aspect-ratio:1.0454545454545454;width:579px;height:auto\" srcset=\"https:\/\/steveprojects.com\/wp-content\/uploads\/2026\/01\/morphlab_screenshot.jpg 944w, https:\/\/steveprojects.com\/wp-content\/uploads\/2026\/01\/morphlab_screenshot-300x287.jpg 300w, https:\/\/steveprojects.com\/wp-content\/uploads\/2026\/01\/morphlab_screenshot-768x735.jpg 768w\" sizes=\"(max-width: 944px) 100vw, 944px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A webes bel\u00e9p\u00e9si r\u00e9sz nem egy \u201eegyf\u00e1jlos\u201d megold\u00e1s: t\u00f6bb komponensb\u0151l \u00e1ll, ami m\u00e1r \u00f6nmag\u00e1ban jelzi, hogy itt tervezett strukt\u00far\u00e1r\u00f3l van sz\u00f3. A security.php jelleg\u0171 f\u00e1jl a biztons\u00e1gi alapbe\u00e1ll\u00edt\u00e1sok k\u00f6zpontja: itt t\u00f6rt\u00e9nik a session- \u00e9s request-kezel\u00e9s alapjainak be\u00e1ll\u00edt\u00e1sa, itt ker\u00fclnek fel a security headerek, itt vannak a CSRF \u00e9s escaping helper-ek, illetve a biztons\u00e1gos redirect logika. A login.php adja a bel\u00e9p\u00e9si fel\u00fcletet \u00e9s a credential bek\u00e9r\u00e9st, az auth.php gondoskodik r\u00f3la, hogy a v\u00e9dett oldalak el\u00e9 mindig ker\u00fclj\u00f6n egy jogosults\u00e1g-ellen\u0151rz\u00e9s (kv\u00e1zi middleware\/guard), az index.php a bel\u00e9p\u00e9s ut\u00e1ni v\u00e9dett bel\u00e9p\u00e9si pont, a logout.php pedig a korrekt kijelentkeztet\u00e9st int\u00e9zi \u2013 nem csak \u201ekil\u00e9p\u201d, hanem t\u00e9nylegesen invalid\u00e1lja a sessiont \u00e9s rendezi a cookie-kat is.<br><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A bel\u00e9p\u00e9sn\u00e9l az els\u0151 a \u201ehardeningelt\u201d  session kezel\u00e9s: a rendszer session fix\u00e1ci\u00f3 ellen session ID rot\u00e1ci\u00f3t alkalmaz, cookie param\u00e9tereket tudatosan \u00e1ll\u00edt be, \u00e9s a kil\u00e9ptet\u00e9st is teljesen v\u00e9gigviszi (session_destroy), nem hagy f\u00e9l\u00e1llapotokat. A m\u00e1sodik, hogy a v\u00e1laszokn\u00e1l ott vannak a modern HTTP security headerek: nosniff, frame v\u00e9delem, referrer kontroll, permission policy, opcion\u00e1lisan HSTS \u00e9s CSP, \u00e9s m\u00e9g cross-origin izol\u00e1ci\u00f3s headerek is, ha kell. Ez a gyakorlatban azt jelenti, hogy a b\u00f6ng\u00e9sz\u0151 fel\u0151l \u00e9rkez\u0151 \u201eklasszikus\u201d t\u00e1mad\u00e1si fel\u00fcletek nagy r\u00e9sze eleve sz\u0171k\u00edtve van.<br>Bel\u00e9p\u00e9si \u0171rlap szinten az alkalmaz\u00e1s CSRF-v\u00e9delmet haszn\u00e1l session tokennel: minden k\u00e9r\u00e9shez tartozik egy token, amit vagy hidden mez\u0151k\u00e9nt, vagy headerben k\u00fcldesz fel. A dokumentum k\u00fcl\u00f6n kiemeli, hogy multi-tab helyzetben is m\u0171k\u00f6d\u0151k\u00e9pes (grace token lista), ami egy val\u00f3s, h\u00e9tk\u00f6znapi haszn\u00e1latn\u00e1l fontos r\u00e9szlet. A token ellen\u0151rz\u00e9s hash_equals-szel t\u00f6rt\u00e9nik, \u00e9s a rendszer soft Origin\/Referer ellen\u0151rz\u00e9st is tud alkalmazni. A kimeneti oldalon a megjelen\u00edtett tartalom escapingelt (htmlspecialchars helper), \u00edgy a hiba\u00fczenetek \u00e9s inputok visszat\u00f6lt\u00e9se sem nyit XSS fel\u00fcletet, a bemeneti adatokn\u00e1l pedig kontroll karakter sz\u0171r\u00e9s, hosszkorl\u00e1t \u00e9s e-mail valid\u00e1ci\u00f3 is szerepel. Redirectn\u00e9l az alkalmaz\u00e1s nem engedi az \u201eopen redirect\u201d jelleg\u0171 vissza\u00e9l\u00e9seket: tiltja a vesz\u00e9lyes s\u00e9m\u00e1kat (javascript:, data: stb.), alapb\u00f3l same-origin marad, \u00e9s csak kontroll\u00e1lt esetben enged k\u00fcls\u0151 ir\u00e1nyt. A hiteles\u00edt\u00e9s oldal\u00e1n password_verify szerepel, adatb\u00e1zis fel\u00e9 pedig prepared statement mint\u00e1zat (MySQLi), opcion\u00e1lisan rate limiting \u00e9s audit log.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Az alkalmaz\u00e1sunk t\u00f6bbr\u00e9teg\u0171, ami t\u00f6bb dolgot csin\u00e1l egyszerre, de nagyon fegyelmezetten: egyr\u00e9szt ad egy stabil, biztons\u00e1gos webes bel\u00e9p\u00e9si \u00e9s felhaszn\u00e1l\u00f3kezel\u00e9si \u201ekaput\u201d, m\u00e1sr\u00e9szt a h\u00e1tt\u00e9rben lefuttat egy tudom\u00e1nyos jelleg\u0171 k\u00e9panal\u00edzist, ami telepeket\/objektumokat detekt\u00e1l, m\u00e9r, kategoriz\u00e1l, \u00e9s a v\u00e9g\u00e9n mindent egy ellen\u0151rizhet\u0151 riportcsomagba rendez. A dokumentum alapj\u00e1n az eg\u00e9sz rendszer \u00fagy van \u00f6sszerakva, hogy informatikusi szemmel is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13],"tags":[],"class_list":["post-2535","post","type-post","status-publish","format-standard","hentry","category-rivas-blog"],"_links":{"self":[{"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/posts\/2535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/comments?post=2535"}],"version-history":[{"count":2,"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/posts\/2535\/revisions"}],"predecessor-version":[{"id":2540,"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/posts\/2535\/revisions\/2540"}],"wp:attachment":[{"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/media?parent=2535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/categories?post=2535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/steveprojects.com\/index.php\/wp-json\/wp\/v2\/tags?post=2535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}