Autor Zpráva
World
Profil
Zdravim všechny,
chtěl bych se zeptat jestli je bezpečné banovat třeba tímto způsobem, popř. jestli už s tím máte někdo zkušenosti:
mit nějakou tabulky (pro tento případ 'test')
v ní mít nějaké sloupce jako např. ID, login, heslo, ... a ještě to hlavní banned
a pokud by bylo u testovacího uživatele nastaveno banned na 1 tak by ho to při přihlašování zastavilo a napsalo hlášku že je zabanovaný.
a pokud by měl nastaveno 0, pustilo by ho to dál bez nějakých problémů.

takže sql by měl vypadat nějak takto: select login from test where banned=1;
s tím že výsledek by se porovnal s loginem, který se poslal pomocí formuláře a pokud by se výsledky rovnali, vyskočila by hláška.
možná by to bylo náročné na databázi (při větším počtu zabanovaných), ale zase lepší než banovat pomocí IP:
1)Můžete zabanovat ostatní nevinné uživatele na síti
2)Uživatelé s proměnlivými IP si jen resetují router a mají jinou IP

nebo máte nějaký jiný přiklad? nebo nějaký nápad jak tento způsob vylepšit? díky za všechny odpovědi ;)

A ještě nakonec bych chtěl všechny phpčkaře pozdravit, jelikož jsem na tomto fóru nový ;)
koudi
Profil
Proč by to bylo náročné na databázi? Při přihlášování si vytáhneš informace o daném uživateli a kdyžtak ho jenom nepustíš. Ale jak to popisuješ ty mi přijde nějaké krkolomné (asi sem to přesně nepochopil).
Joker
Profil
World
Podle mě je možné to takhle dělat.
Možná by ale bylo lepší místo "banned" mít sloupec "active", kde by se dalo rozlišovat víc stavů, například i ještě neaktivovaný uživatel (tj. registroval se, byl mu odeslaný aktivační kód, ale ještě se neaktivoval) a podobně.

Tahle technika je účinná, ale vyžaduje registraci uživatele. IP adresa se obvykle používá tam, kde není potřeba registrace.

A ten login se dá dělat třeba takhle:
SELECT (...) FROM uzivatele WHERE jmeno='$jmeno' AND heslo='$heslo' AND active=1


A ještě nakonec bych chtěl všechny phpčkaře pozdravit, jelikož jsem na tomto fóru nový ;)
Hello, World :o)))
koudi
Profil
SELECT (...) FROM uzivatele WHERE jmeno='$jmeno' AND heslo='$heslo' AND active=1
Vyhodil bych tu podmínku active. Takhle to totiž těm zabanovaným ohlásí něco jako špatný login/heslo. Kdyź až pozdějí v kódu ošetříš, že if ($active!=1) echo "jsi zabanován"; tak to bude mnohem jasnější.
Toto téma je uzamčeno. Odpověď nelze zaslat.

0