Autor Zpráva
spartan13
Profil
Dobrý den, jak zabezpečujete formulář proti mnoha odesláním za sebou? Pouze "klasickým" vyplněním kontrolního kódu, nebo ještě jinak?

A mohl byste mě někdo trochu nakopnout, jak udělat, aby po odeslání formuláře nešlo dát zpět a mít tam opět vyplněný formulář, děkuji za vaše odpovědi.
tiso
Profil
spartan13:
1.
-kód, alebo hidden field s tokenom, kontrola voči SESSION
-v databáze ochrana voči viacnásobnému vloženiu rovnakých údajov (unique pre stĺpce)

2. prečo by si to robil?
spartan13
Profil
tiso:
to jsem myslel, aby někdo nezadával stejné údaje ale to už píšeš, že mám ověřit.

moc se nevyznám v názvech tak když píšeš vůči SESSION tak tím myslíš ověřování, jestli tam jsou takové formuláře apod. přes isset, request,.... tohleto jsem víceméně udělal akorát řeším to, aby to někdo neodesílal víckrát apod( to bych musel porovnávat s daty v databázi? nebo jen porovnat přes globální proměnné?).

(teď si uvědomuji, asi jsem to spletl session nejsou všechny superglobální proměnné ale jen ty kvůli kterým se dáva session_start() na začátku..)

já už ani neumím číst, takže nic... jdu spát :-)
tiso
Profil
spartan13: Skús byť konkrétnejší čo sa dáta to majú byť, kam sa ukladajú a čo pre teba znamená duplicitné odoslanie formulára. Z tej istej IP raz za hodinu alebo deň? S tým istým vyplneným menom?
spartan13
Profil
tiso:
duplicitním jsem myslel identicky vyplněným formulářem.

Uvažoval jsem na nějaké omezení odeslání formuláře z jedné IP jenže to bych pak musel brát v úvahu víc informací protože z jedné IP se může přihlásit více uživatelů.
tiso
Profil
spartan13: chcel som vedieť viac vecí, keď nie si konkrétny ty, tak nemôžem byť ani ja a k odpovedi v [#2] nemám čo doplniť.
spartan13
Profil
tiso:
ukládám z poměrně velkého formuláře do několika tabulek- v jednom jsou konakty, v dalším převážně booleanovské prvky ale v některých dalších jsou např. textové řetězce-tam je hlavně důležité omezit maximální délku. U mailů a podobně to chce tu bezpečnost asi o něco větší u kontaktů mám ještě heslo.
tiso
Profil
spartan13: moc si mi nepomohol, ale napríklad môžeš nastaviť unique(meno,priezvisko), unique(email) pre tabuľku kontakty a tak ti nebude môcť viackrát odoslať ten formulár s rovnakým menom či emailom, do databázy sa skrátka nevloží.
Ďalšia možnosť je spraviť si hash z hodnôt formulára, ukladať ho do databázy a nastaviť mu unique, takže nikto neodošle rovnako vyplnený formulár. Treba myslieť na to, ktoré položky z formulára tam zahrnúť.
Takýto hash si vieš vytvoriť napríklad aj s IP adresy a nejakého času (time()/60, time()/3600), takže vieš dosiahnuť to, že sa z jednej IP formulár dá odoslať za minútu, hodinu...

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0