ugrás a tartalomhoz

Ér ez bármit is?

Chriksz · 2013. Dec. 23. (H), 16.51
Üdvözletem!
Van egy honlapom, ami pénz és idő hiányában hosszú távra jegelve lett. A jelenlegi állapota sajnos félkész, ha nem muszáj, egyelőre nem is szeretném továbbfejleszteni. A véleményeteket szeretném kérni, hogy szerintetek, pályakezdőként, jelenlegi állapotában használható-e, mint érdemleges referencia.

A honlap címe: addonline.hu

szerk.: Egy messze nem tökéletes darabka a forrásból:
https://github.com/Chriksz/CI_user_handler/
Segítségeteket előre is köszönöm!
 
1

Nem

Pepita · 2013. Dec. 23. (H), 17.10
Bocsi, de szerintem

- működő oldal, ami ref. lehet;
- nem derül ki, mennyire saját fejlesztés, mivel csináltad;
- a lábléc agyonvágja az amúgy sem tetszetős designt (Figyelem! Ez erősen szubjektív, csak a véleményem tükrözi, egy designer véleményére inkább adj!);
- a menüszerkezet kissé fura, 2 főmenü, millió "almenü", amik inkább másodlagos menük;
- az oldalon használt captcha sem tetszik nekem;
- látva a forrást, hát szeretsz szkripteket ide-oda is behányni, emellett csak névleg használod a HTML5-öt, a tag-eket nem, ez mondjuk nálam nem feltétlen hátrány, de másnak jelentheti azt, hogy gőzöd sincs a HTML5-ről.

Javaslat:

- fejezd be és működtesd az oldalt, ha működik (=használják), az referencia;
- keress egy grafikus havert, akivel ketten kipofozzátok szépre;
- írj ki rendes copyright-ot, ha van grafikus haver, az ő nevét is.

Így még - szerintem - lehet belőle referencia, főleg ha saját programozás, nem valami CMS.

Nagyon remélem, hogy építő kritikának veszed - ennek szántam, véletlenül sem bántónak.
2

Próbáltam különválogatni a js

Chriksz · 2013. Dec. 23. (H), 17.44
Próbáltam különválogatni a js file-okat, igazából a jslow méréséhez szabtam a kérések számát. Ott 100%-os értéket adott. A designt én eszkábáltam össze. Egy ilyen aukciósházat önerőből esélytelen, hogy én üzemeltessek. Nem vagyok egy "businessman" hogy intézzem egy ilyen vállalkozással járó teendőket. Designer sem szeretnék lenni, szóval végül is a technikai oldala fontos számomra. (Bár túl sokat az én fontossági sorrendem nem nyom a latba a kérdés tekintetében.)
jQueryt meg CodeIgnitert használtam, szóval az MVC részeit csináltam én.

ui.: A kritikának mindig jobban örülök, mint a dícséretnek. :D
3

Van ami jó

Pepita · 2013. Dec. 23. (H), 19.24
Próbáltam különválogatni a js file-okat

Nem kell sok fájl ahhoz, hogy átlátható kód legyen, és pláne nem kell a HTML különböző részein elhelyezni őket.
Számomra 2 js-hely létezik: a <head>-ben és közvetlenül a </body> előtt. Szerintem ki tudod találni, hogy miért nincs szükség többre, és így a saját generált HTML-emben is gyorsan megtalálom, hogy "mik vannak ottan", nem kell keresgélni.
jQueryt meg CodeIgnitert használtam, szóval az MVC részeit csináltam én.
CodeIgniter nekem (is) kedvenc :), és akkor az adatbázis-kezelést is teljesen te csináltad. Remélem session is db-ben van, különben CI képes túl nagy sütit gyártani (sütiket nem is néztem, akár elárulhatta volna a CI-t is).
Tehát így tetszik maga a munka, ugyan a kódminőségre (backend) nem tudok látatlanban mit mondani, de valószínűleg többet agyaltál rajta, mint WP-vel és társaival tetted volna.
Nem vagyok egy "businessman" hogy intézzem egy ilyen vállalkozással járó teendőket.
Akkor keress egyet, aki intézi helyetted, kellő százalékért! Itt inkább a nagyobb feladat felfuttatni az oldalt. Meg utána kell nézni törvényszinten is, nekem rémlik, hogy M.o-n kicsit problémás az online árverés, de szigorúan erről jogász tanácsát javaslom, én nem értek hozzá.

Szerk.:
A kritikának mindig jobban örülök, mint a dícséretnek.
Ezt ebben a formában nem tudom elhinni... :)
Annyi, hogy jó kritikából lehet tanulni, de a dicséret sem haszontalan ám, és nincs az az (értelmes) ember, akinek ne esne jól.

Szerk2.:
ha ref.-nek szánod, akkor valami impresszum-szerű oldalon nyugodtan kiírhatnád a CI-t, hogy saját DB (és milyen), stb. Tehát magáról az oldalról (is) hiányolom ezeket az infókat.
4

Az oldalra nem célszerű

bamegakapa · 2013. Dec. 23. (H), 19.33
Az oldalra nem célszerű kiírnia, milyen a backend, azt majd a referenciái felsorolásánál célszerű kifejtenie, hogy mit használt hozzá.
5

Miért?

Pepita · 2013. Dec. 23. (H), 20.29
Ezzel gyakorlatilag azt írja ki, hogy egyedi kód és adatbázis, a CI-ben még felhasználókezelés sincs, tehát az is egyedi.
A WP-, stb- "feltörő" (próbálkozó) botok pedig mindenképp látogatják, nyugodtan kiírhatja. Annál is inkább, mert CI alatt mindenképp szinte biztosan egyedi megoldásokat használsz, persze ha ügyesebb vagy, akkor vannak újrahasznosítható modeljeid, controllereid, esetleg egyéb célú osztályaid, de azt megint ki tudja?
Ha azokat nem publikálod, CI-t bátran kiírhatod, egy nagyon pici, ám hasznos fw. Az meg, hogy az adatbázisod milyen motorra / táblákra épül, hány adattáblád van, szintén nem jelent semmit önmagában. Nyilván nem a felh.nevet - jelszót írod ki (mint megtette a vendégkönyvnél... :) ).

Vagy más, "reklámcélú" okból mondod, hogy nem célszerű? Mi az?
11

Azért, mert a feltételezhető

bamegakapa · 2013. Dec. 28. (Szo), 00.17
Azért, mert a feltételezhető célközönségnek nem hordoz információt.

Amúgy aki akarja, biztos ki tudja deríteni, hogy CI, de azért az esetleges támadók dolgát se könnyítsük meg. Bizonyára a CI-nek is vannak ismert hibái, mint minden szoftvernek.
12

Persze, hogy vannak hibái,

Pepita · 2013. Dec. 28. (Szo), 01.32
de mivel semmilyen adatbázist nem hoz létre magától, a felhasználókezelésed is a te szoftvered, ami annyira feltörhető, amennyire elrontottad. De nem egy ismert rendszer, mint pl. Joomla, WP, stb., amiknek beállítási hibáira már apellálhatnak a hackerek. Tehát igen kevés CI-s tulajdonság maradt, ami támadási felület lenne, esetleg a sessionkezelés, de abba is simán bele tudsz nyúlni -> máris nem CI-s. Én simán el merem árulni, hogy leginkább ezt a keretrendszert preferálom, ugyanis nekem még csak sikertelen támadások érkeztek, egyik sem CI-re "kihegyezve", de amennyire eddig elmélyedtem benne, nem Pistike-hacker fogja tudni megtörni.

A megrendelőnek az, hogy egyedi szoftvert kap, nem egy valahogy beállított "gyári" tartalomkezelőt, mindössze annyi infót jelent, hogy ha jó a kommunikáció közte és a fejlesztő közt, akkor pontosan azt kapja, amit kér, se többet, se mást, se kevesebbet.
Én ezért szeretem a CI-t, mert egyedit alkothatok, emellett könnyű újrahasznosítható kódokat írni alatta, úgyhogy nem kell minden projektnél "rabszolgáznom" az elejéről.
18

A megrendelõnek jelenthet

bamegakapa · 2013. Dec. 28. (Szo), 12.16
A megrendelõnek jelenthet infót, le is fogod írni az árajánlatban, tervben, dokumentációban, vagy ami tetszik. Az oldal viszont a felhasználóknak készül, számukra ez irreleváns infó.
15

Amúgy aki akarja, biztos ki

tgr · 2013. Dec. 28. (Szo), 11.31
Amúgy aki akarja, biztos ki tudja deríteni, hogy CI, de azért az esetleges támadók dolgát se könnyítsük meg.


Az esetleges támadók dolga kb. annyira nehéz, hogy be kell gépelniük, hogy builtwith.com/addonline.hu.
17

Kösz, nem néztem utána, a CI

bamegakapa · 2013. Dec. 28. (Szo), 12.12
Kösz, nem néztem utána, a CI mennyire könnyen detektálható.
19

És akkor mi van?

Pepita · 2013. Dec. 28. (Szo), 17.47
Bocs a címért, de tényleg: mit számít, hogy a CI mennyire könnyen detektálható?
Ugyanígy a kész CMS-ek is, emellett sokan az oldalra is kiírják - önmagában szerintem semmivel sem jelent nagyobb sebezhetőséget.
6

A kritikának mindig jobban

Hidvégi Gábor · 2013. Dec. 23. (H), 21.25
A kritikának mindig jobban örülök
A kritikából a porbaalázó-jellegűeket kedveled, vagy inkább a finom szarkazmussal kezdő, majd maró gúnyba átcsapó, inkább intellektuális írásokat? : )
7

Kizárólag az enyémeket :)

Pepita · 2013. Dec. 23. (H), 21.47
Azt ne hidd, hogy te beférsz a "kritikát tőled is szeret" körbe!... :)

Egyébként meg próbáld ki: nézd meg te is az oldalt.
8

A szellemes szarkazmuson

Chriksz · 2013. Dec. 23. (H), 22.09
A szellemes szarkazmuson jókat tudok röhögni. :-)
Kritika alatt inkább az elemzést értettem. A dicséret alatt meg az "ügyi vagy" és más hasonló velős aforizmákat. Bár igen, a "mindig" szó lehet nem helyén való, végül is valószínűleg mindenki szereti, ha néha kicsit megsimogatják a kobakját. :D
9

Akkor érezd simogatva is

Pepita · 2013. Dec. 23. (H), 22.44
a kobakodat, legalábbis részemről a fw-ért és a saját fejlesztésért. Bár a saját fejlesztés - így forráskód nélkül - önmagában "csak" bátorságot mutat, tudást még nem. :)
10

Íme a core

Chriksz · 2013. Dec. 27. (P), 20.46
Felraktam GitHubra a felhasználókezelés megvalósítását - szerintem legoptimálisabb mutogatás céljából, egy nagyon általános feladatot kezel le, ami könnyen emészthetővé teszi, de azért bemutatja a kódolásom stílusát-, ill. a honlapon is feltüntettem. Igaz, nem egy SOLID mintapéldány, de ha megvárnám, hogy rossz szájíz nélkül tudjam kirakni, kb. kitavaszodna. Plusz így hátha kapok pár jó tippet. :-)
https://github.com/Chriksz/CI_user_handler
13

Pont a felhasználókezelés...

Pepita · 2013. Dec. 28. (Szo), 02.20
Bocsi, de szerintem kezdd el írni az egészen más újat, én pont ezt nem tenném nyilvánossá... Ha elegen lemásolják, Hacker Jani már írja is a botot rá, aztán meg lesz az éles teszt. :)
Addig jó, amíg a CI-s oldalad a WP-t, Joomla-t, Drupal-t, stb-t célzó botok próbálják feltörni, az egyedi kódnak pont a rejtettsége a fő védelme.
Azt hiszem, pp mondta (nem egész így, de így értek egyet): a "gyári" CMS-eket sokan fejlesztik és folyamatosan, te egyedül nem biztos, hogy írsz olyan jót. (pp szerint biztosan nem, ha jól emlékszem, hogy ő mondta.)
Tehát szerintem inkább a webshop megvalósítását kellett volna, és nem kell arra törekedned, hogy "csinosabb" legyen a hétköznapi kódodnál, egy valamire való munkáltató - szerintem - azzal kezdi, hogy OK ez szép, most megnéznénk ugyanennek a projektnek az XY részét is... És ha az Pistikés, már repültél is.
A potenciális megrendelőt pedig a kód nem érdekli, inkább az egyedi szoftverrel járó előnyök.

A honlapon nem látom, mit tüntettél fel, de lehet, hogy már vaksi vagyok.

Nem ígérek időt és nagy mélységet, de remélem, hogy átnézem a kódod valamennyire valamikor, "hátha kapsz pár jó tippet".
Én a felhasználókezelésemről csak elméleti infókat osztok meg, kódot 1-1-ben nem, legfeljebb átírva. Jobb az, ha egyedül csinálod, ha zárt forrású.
14

Én meg inkább pont az ilyen

Chriksz · 2013. Dec. 28. (Szo), 04.28
Én meg inkább pont az ilyen érzékenyebb részt gondoltam mutogatni. Aukciók renderelésére ott a unit tesztelés meg kis millió más eszköz, viszont az ilyen részek profibbá tételére a legoptimálisabbnak a crackelést látom. :-) Egy ilyen 800 soros szösszenetnél nagyobbat felrakni teljesen fölöslegesnek éreztem.

Nagyon meglepne, ha nem kerülne refaktorálásra ez a kezelés még az idők folyamán. (már most is a fejemben kb. újra van írva, csak kevés az idő lepötyögni...)
16

Ha egy kódnak a rejtettsége a

bamegakapa · 2013. Dec. 28. (Szo), 12.08
Ha egy kódnak a rejtettsége a legfõbb védelme, az bizony harmatgyenge...
20

Nem jól érted

Pepita · 2013. Dec. 28. (Szo), 17.51
fő védelem != legfőbb védelem.

Nyilván ettől még nem hányhatod össze, de lényegesen nehezebb úgy megtörni valamit, ha nem ismerik a forrását. Szólj, ha szerinted látatlanban könnyebb, vagy ugyanolyan, mert akkor én látom fordítva a világot. :)
21

Ez a kód úgy néz ki, mintha a

tgr · 2013. Dec. 29. (V), 16.54
Ez a kód úgy néz ki, mintha a kutya szájából tépték volna ki, szerintem első körben szokj meg valamilyen konvenciót (célszerűen a CI-ét), és a behúzásokat, szóközöket, nagybetűzést stb. alakítsd annak megfelelően.
(Az egyébként nálam jó pont lenne, ha munkáltató lennék, hogy ha tökéletlen állapotban is, de közzéteszed; azokkal az emberekkel, akik eltitkolják, mit csináltak, amíg nem érzik úgy, hogy tökéletes, általában problémás együtt dolgozni - vö. commit hoarding. De nem ellensúlyozná azt a rossz pontot, hogy a kód úgy néz ki, ahogy :)
22

+1

Pepita · 2013. Dec. 29. (V), 18.09
Addig jutottam (türelem hiányában), mint tgr első mondata... Jelezd, ha külalakra szép, akkor megnézem jobban, view-kat nem is néztem, mind legyen szép külalakra, hogy ne nekünk kelljen olvashatóvá tenni...

Pár dolog azért szembetűnt (csak belepillantottam a controllerbe és a modelbe):
- Azt, hogy 3 próbálkozás után jön a captcha, én configba tenném, és nem captcha-t tennék ki, hanem mondjuk 3 percig tiltanám a próbálkozást, és ezt kiírnám egy aranyos üzenetben. Lehet, hogy van több dolog is, amit configba kéne.
- Nem szükséges a model nevében is szerepelni, hogy "model", vagy akkor a controllernél miért nincs?
- Bár bevett gyakorlat a külön só oszlop, de használhatod valamelyik (akár több) kötelező felhasználói adatot is, így csak a kódoddal együtt törhető a tábla, önmagában nem.
23

CAPTCHA-hoz egy ötlet

ecrazor · 2013. Dec. 29. (V), 18.28
Ez a megoldás most egyre népszerűbb, pl. regisztrációnál. Elméleti szinten a lényege az, hogy odadobunk egy input mezőt (mint ha értéket várnák belé, így a regisztrációs form része), de mi ezt a mezőt elrejtjük (css vagy javascript-el / akár mindkettővel). A regisztrációt pedig csak akkor fogadjuk el, ha ez a mező üres.

A fent említett megoldás ugyan a célzott támadás ellen nem véd, de a SPAM robotok zömét megszívatja. Ezt még azzal lehet fűszerezni, hogy X hiba után bejön a CAPTCHA, tiltás, stb...
26

Bocsi, de

Pepita · 2013. Dec. 29. (V), 23.10
ez a topic nem a captcha-ról szól, hanem immáron felhasználókezelésről, ha egyértelműen robotot akarsz szűrni helyben és azonnal, akkor csak a captcha a közel 100%-os megoldás. Azon belül lehet variálni, hogy matekos, vagy krix-kraxos, egy vagy két szó, stb. Nem ez a kérdés.

Én pl. csinálok olyat is, hogy x másodpercen belül nem jöhet ugyanarról az IP-ről új látogató (tehát még be sincs jelentkezve, sőt, egy bizonyos session-változója sincs), ha mégis, akkor 406-ot kap. Az ismertebb keresőbotok bő perceket hagynak két indexelés között, tehát 10-20 sec. őket nem akadályozza, és amúgy is felismerhetőek a "jó botok", rájuk ez eleve nem él, csak "akit" elsőre látogatónak nézek.
A spam- és egyéb botok jellemzően létező "házi" gépnek és böngészőnek álcázzák magukat, nem árt őket kicsit lassítani. Általában az első 406 után odébbállnak.
30

-

ecrazor · 2013. Dec. 30. (H), 02.17
-
24

A "handling" végül is

Chriksz · 2013. Dec. 29. (V), 19.31
A "handling" végül is szinonímája a "controlling"-nak, nem ? :-D Átírom azt is, köszönöm.
25

Köszönöm. Mentségemre legyen

Chriksz · 2013. Dec. 29. (V), 20.50
Köszönöm. Mentségemre legyen szólva, meg akartam már csinálni, csak elfelejtettem. Kb. az első CI osztályom volt, figyelmetlen voltam.
Viszont a funkciók, változok nevezésére már itt is figyeltem, a CI szerint használva, ha lenne valamilyen szarvas e tekintettben (is) nagyon megköszönném a rámutatást.

szerk.: A hozzászólásomból nem derült ki; a kódot már rendbe tettem (legalábbis remélem).
28

Pl. hol kis, hol nagybetűs

tgr · 2013. Dec. 30. (H), 00.53
Pl. hol kis, hol nagybetűs false, User_model aminek User_Modelnek kéne lennie...
27

Na, akkor nézzük...

Pepita · 2013. Dec. 30. (H), 00.26
Előrebocsájtom, hogy elég fáradt vagyok, úgyhogy csak "szúrópróba", ameddig tetszik is.

Adattábla:
- én hiányolom: UNIQUE KEY `u_email` (`u_email`), mert nem szokás ugyanazt az e-mailt sem kétszer engedni;
- szoktam belépési időt, és előző belépési időt is tárolni (datetime), így lehet timelimit-et is belőni, ha "nem mozog" + WL-hez hasonlóan friss tartalmakat, stb.; IP címet azért, hogy kiléptessem, ha változik - szóval jócskán nagyobb nekem a "users_table";
- valamilyen plusz oszlopot (text) még mindenképp tennék hozzá, amibe esetleg szerializált egyéb adatokat lehet tenni, vagy jóval több oszlopot, mert hátha egyszer címet is akarsz kérdezni, stb., aztán a regelős formot úgy variálod, ahogy akarod;
- az `u_reg_date` date DEFAULT NOW(), egyszerűsítené a dolgod, és miért nem datetime?;
- sót már fentebb talán írtam, hogy felesleges külön oszlopba gyártani hozzá, darabolhatsz pl. a `u_nickname`-ből, vagy felhasználhatod egy meghatározott rendben az összes NOT NULL oszlopot, stb.;
- nincs megadva táblatípus, miért? (a configok közül kihagytad a database.php-t, így az sem derül ki, milyen drivert használsz, így nem lesz rendesen értékelhető a model).
- Még két táblát hiányolok a jogosultságkezeléshez, és egyet vagy kettőt naplózáshoz és statisztikához.

Controller:
- Mivel a controllerek "controllers", a modellek "models" könyvtárban vannak, teljesen felesleges a fájlnévbe is beleírni. (Persze azonos nevű nem lehet controller és model, de a controller lehet "tagok" is, és nem kell agyonroutingolni, hogy magyar legyen...)
- Én (és a CI is) az osztályok legelején deklarálok változókat, a __construct() előtt, valamint a tabulátorok még mindig nem teljesek (nekem).
- A form_validation osztálynak is kényelmesen meg lehet adni config fájlban a beállításait, így hatalmas a controller, többször leírod ugyanazt, és rosszul hordozható.
- Az ilyen kód kerülendő a controller-függvényekben, ki kell emelni külön függvénybe:
			$this->load->view('templates/header', $style);
			$this->load->view('users/login', $cap);
			$this->load->view('templates/footer');
Egy private fv, amit paraméterekkel hívsz meg, esetleg a hívó fv-ben a Template Parser Class segítségével állítod elő a fő tartalmat. Így könnyeben megcsinálod majd a mobil kinézetet is.
- Elfelejtett jelszó: mit keres a controllerben HTML kód? Szintén Template Parser Class. Nem mondom, hogy nekem sosincs ott HTML, de max. ennyi: $this->data['message'] .= '<p>Az XXX funkciókhoz be kell jelentkezned.</p>';. (Természetesen ezt a data tömböt kapja a végén a view réteget hívó fv., és kismillió paraméter van belegyűjtve, l. mobilnézet cikkem, az az alap.) Itt is leírod ugyanazokat a configokat, mint a bejelentkezésnél. Ha most hirtelen meg kéne oldani, hogy min. 6 karakter legyen a felhasználónév, végig kéne nyálazni az egész controllert, nem pedig egy config fájl egy sorát módosítani (esetleg két sorát, de akkor már nem elég jól gondolkodtál).
Milyen tárgy ez egy e-mailnek?! (122. sor)
Nincs az e-mailnek alternatív szövege, így a felhasználó, ha csak plain/text e-mailt fogad, nem kap semmit...
- password_reset: adatbázist csak modelből bűvészkedjük (156. sor), és a sózás művelete a model egy fv-ének kellene lennie. A sózást is vagy 20x leírod, ha változtatni akarsz rajta, szinte biztos bukta, és spagetti a kód ettől a sok ismétléstől.
Kicsit bonyolultabb model, és sokkal egyszerűbb controller.
- Regisztrálás: ugyanazok a config- és e-mail hibák, mint fentebb.
- Közben meg van egy _mailer($content, $recipient, $subject) privát fv., ami némi átalakítással használható lenne fentiek helyett, vagy egy ehhez hasonló. De ebből is hiányzik az alt text.
- Logout: mivel a táblában semmi erre vonatkozó adat nincs, elegendő a sessiont "kiirtani", de ha látogatottságot is számolsz, akkor csak az adott session-változókat kéne törölni, nem az egészet.
- A birth_check() és a verify($name, $key) miért publikus fv? URL-ből hívható?! Egyébként a modelben a helyük, vagy privát.
- unique_check: az első ellenőrzés miatt tiltanod kell felh. névben a @ karaktert... Ez is miért public? (Jaj, lehet, hogy a form_validation-nek csak úgy jó, akkor viszont a routs-ban le kell tiltani.)
- 357. sor: elég furcsa nevet adtál a session-ben a captcha-nak... Remélem ezt nem gépelted el sehol...
- 379. sorban biztos, hogy 'fwhere' van?

Na, mostanra ennyire futotta, bocsi, de modelre már nem. A controllerből is látszik, hogy nemigazán vannak helyén a dolgok, tulajdonképpen bármi adatot előállítani is a modelben szoktam (nagyon kevés kivétellel), a controller tényleg csak vezérli az eseményeket, alapvető dolgokat ellenőriz, de már ezt is modell(ek) segítségével. Hogy átlátható legyen a vezérlő.
Modelleknél is meghatározott rend uralkodik, mi az a szint, ami felett már kiszervezem a feladatot privát fv-be, vagy írok egy saját osztályt rá.

Szerintem ezeken gondolkodj el, attól valószínű megváltozik erősen a model is, majd talán még egyszer meg nézem, de nem ígérem biztosra.
32

Köszönöm, köszönöm! UNIQUE

Chriksz · 2013. Dec. 30. (H), 06.14
Köszönöm, köszönöm!
UNIQUE KEY `u_email` (`u_email`)
Jogos, ámbár mivel egyelőre csak a felh név által lehet bejelentkezni, nem adnék hozzá indexet. (@ is le van tiltva, az egyszerűség végett)

Statisztikázással nem szórakoztam, nem derült ki még a honlap fejlesztése során, mik lennének a fontos információk, így szimplán a Google felszerelésére hagyatkoztam.

`u_reg_date` date DEFAULT NOW()
Nem tudom, az adatbázis időkezelését nem ismerem, inkább PHP-ben állítottam elő őket, így biztosítva az azonos időzónákat stb.

A view-okat fogalmam sincs miért nem rendeztem külön fv-be, érdekes.

Jaj, lehet, hogy a form_validation-nek csak úgy jó
- Igen, ez az oka, hogy nem privátok.

379. sorban biztos, hogy 'fwhere' van?
Igen, ki van kapcsolva a standard escapelés, ezért fwhere.


szerk. :
Validatorok kiemelve, viewok kiemelve, meg még néhány apróság.
Az idő jelenlegi állásából fakadóan könnyen elképzelhető, hogy néhány új hiba keletkezett, következő megtekintés alvásom után javasolt. :-D
35

Közelít

Pepita · 2014. Jan. 2. (Cs), 09.21
Jogos, ámbár mivel egyelőre csak a felh név által lehet bejelentkezni, nem adnék hozzá indexet
Itt nem (csak) az a kérdés, hogy be lehet-e vele jelentkezni, hanem pl. az elfelejtett jelszó is. Egy Júzer egy e-mail, ez alap. Sőt, van mikor érdemes a törölt felhasználó felh.nevét és e-mailét megőrizni, képzeld el, mi lenne, ha itt én töröltetném magam, és jönne egy egész más valaki Pepita néven, az én címemmel, és nagyobb hülyeségeket írkálna, mint én... :)

nem derült ki még a honlap fejlesztése során, mik lennének a fontos információk
Pl. ki mikor érkezett, melyik lapra, honnan, sikeres és sikertelen bejelentkezések(!), utóbbiakkal tudod a botokat korlátozni jól.

az adatbázis időkezelését nem ismerem, inkább PHP-ben állítottam elő őket
Helyes, ez is egy viszonylag jó megoldás, így csak egy időzónával kell foglalkozni, az sem ritka, hogy az adatbázisszerver órája "másképp jár", bár ez elég szarvashiba az üzemeltetőtől. Akkor csak NOT NULL.

Igen, ez az oka, hogy nem privátok.
Akkor pedig kell rá routing, hogy "megnézni" ne lehessen, dobjon rá 404-et.

következő megtekintés alvásom után javasolt.
Aludj jól és sokat, nekem egy darabig most nem lesz rá időm... :)
33

_

Chriksz · 2013. Dec. 31. (K), 04.47
_
36

Ez ugye nem uppolás?!

Pepita · 2014. Jan. 2. (Cs), 09.23
Itt nem szokás uppolni a témákat, ha megnézed, a friss oldalon minden bejelentkezett Júzer látja, hogy mit nem olvasott még. Én kifejezetten utálom az uppolást, azokat a tartalmakat hamar elkerülöm.
38

Nem akartam uppolni, írtam

Chriksz · 2014. Jan. 2. (Cs), 10.58
Elnézést, nem akartam uppolni, írtam valamit, majd rájöttem hülyeség. Az IP szűrést akartam mondani, hogy a CI-nek van rá saját opciója stb.
29

Biztonsági téren még van mit

tgr · 2013. Dec. 30. (H), 01.27
Biztonsági téren még van mit javítani rajta. Template változók nincsenek escapelve, bejelentkezés után nem váltasz session id-t, nem paraméteres lekéredezések, adatbázisnak nincs megadva a kódolása... a sha1 helyett is lehetne elegánsabb hash fügvényt találni.
31

Köszönöm, köszönöm.Template

Chriksz · 2013. Dec. 30. (H), 02.42
Köszönöm, köszönöm.
Template változók nincsenek escapelve

A CI minden adatbázisba kerülő adatot escapel, ha külön nem tiltod. View-nak itt sehol nem adtam át külső adatokat.
Vagy félreértelek? Mire gondolsz ez alatt?
34

Félrenéztem, az emailbe kerül

tgr · 2014. Jan. 1. (Sze), 20.26
Félrenéztem, az emailbe kerül nyers user input; az se szerencsés.

A login throttlingon is lehetne fejleszteni; a támadó önbevallásán alapul, hogy kap-e captchát.
37

Félrenéztem, az emailbe kerül

Chriksz · 2014. Jan. 2. (Cs), 10.41
Félrenéztem, az emailbe kerül nyers user input; az se szerencsés.

Valójában ez sem teljesen nyers, átmegy egy reguláris szűrésen, ami számokon és aláhúzáson kívül nem enged be mást.

A login throttlingon is lehetne fejleszteni; a támadó önbevallásán alapul, hogy kap-e captchát.

Igen, már tervben van, hogy készítek egy account szerinti számlálót is.
39

Valójában ez sem teljesen

tgr · 2014. Jan. 3. (P), 11.01
Valójában ez sem teljesen nyers, átmegy egy reguláris szűrésen, ami számokon és aláhúzáson kívül nem enged be mást.


Jogos, úgy próbáltam okoskodni, hogy nem igazán ismerem a CI-t.