Sigurnost formi

Pozz

Zanima me dali netko od vas provjerava polja u formi, jer se mogu editirat preko mozile na f12 i tako spremit u bazu mislim pogotovo na registraciju.

Imam polje za Zemlju i izvlacim iz baze ime i skracenicu za zastavu zemlje

<div class="form-group">
    <label for="country">Country</label>
      <select name="country" class="form-control" required>
          <option value="">Select country ...</option>
            <?php
               foreach ($cnt as $key) {
                    echo '<option value="'.$key['alpha_2'].', '.$key['name'].'">'.$key['name'].'</option>';
               }
             ?>
      </select>
</div>

I sad on moze da ubaci value=“test, test” i tako mi spremi u bazu. Kako to sprijecit ? Osim da provjeravam dali je value koji je unesen u formu jednak onome u bazi i dali je patern isti ?

Tako moze i za spol, i ostalo

Pa u bazi vjerovatno imaĆĄ id svake zemlje, za value stavi id i onda provjeriĆĄ dali je id ispravan, sve podatke moraĆĄ na serveru provjeravat

A jbt led i sad imas formu veliku, i sta moram provjeravat svako polje jbt led, koje sranje. Jel ima neka zastita ili nesta drugo a da je jednostavno ?

Sve ĆĄto provjeravaĆĄ na client strani, provjeravaĆĄ samo da popraviĆĄ user experience
tako da kaĆŸeĆĄ odmah korisniku ako neko polje nije pravilno ispunjeno
itd.
No tu ne stvaraĆĄ nikakvu sigurnost jer imaĆĄ nebrojeno načina da korisnik poĆĄalje na server ono ĆĄto on ĆŸeli poslati.
Tako da na serveru moraơ provjeravati polja u svrhu vlastite sigurnosti
da ne dobijeơ nekakav SQL injection koji ti pobriơe bazu podataka
itd.

No jedna stvar, korisnik koji te ĆŸeli “napasti” 
on nema niĆĄta od toga ako u formu koju si ograničio na 5 slova, poĆĄalje input od 7 slova. (To je samo njegov bed ĆĄto će mu kasnije faliti ta dva slova, ili će mu biti viĆĄak, 
ili koje već kontradiktornosti će sam sebi time stvoriti) Tvoj code u startu ne smije biti osjetljiv na takve “sitnice”.

Znači provjera od napada ne treba kontorlirati svaku stavku koju si stvorio radi user experienca, treba samo kontrolirati opasne inpute koji ti mogu naơkoditi.
Ako u nekom inputu 7 karaktera umjeto 5 zaista moĆŸe naĆĄkoditi tvome code-u, onda moraĆĄ kontrolirati dodatno i tu stavku za neki x input
tj. limitirati na serveru upis od 5 karaktera.

Opasni inputi ti se uglavnom veĆŸu za SQL injection
ili da ti netko prosljedi nekakav javascript code koji će se aktivirati tek kad se ispiĆĄe na otvaranju stranice kao komentar npr.
No za takve stvari ne moraơ smiơljati posebnu kontrolu kod svakog upisa u bazu
dovoljno je imati jednu kontrolnu točku i sve ơto ti se upisuje u bazu provrtiơ kroz tu kontrolnu točku.
E sad, koliko ima sigurnosnih problema koji bi se mogli upisati u bazu osim ovog dvoje ơto sam gore spomenuo
to nisam siguran. Lopova uvijek bilo
uvijek će biti. Sa razvojem weba se i granica sigurnosti uvijek pomiče


Zato pametni developeri znaju cemu sluze frameworks i kako ih iskoristiti, sve ostalu u danasnje vrijeme je izmisljanje tople vode.

1 Like

A sto cu koristit framework za mali projekt + jesi ti siguran 100% za forme u bilo kojem frameworku ? Nema sanse

Ne moras koristiti kompletan framework. Npr. Symfony je odlican jel mozes koristiti samo odredjene komponente ne moras koristiti kompletan framework. Imas npr. i FatFree ili Lumen koji su u biti micro frameworks koji dobro dodju u malim projektima, puno toga je tamo rijeseno vec na samom pocetku. Izmedju ostaloga i ono sto tebe muci, a to je form handling.

Ovako to izgleda u Lumenu: http://lumen.laravel.com/docs/validation
ovako u FatFree: http://fatfreeframework.com/audit
a ovako u Symfony: https://symfony.com/doc/current/components/form/introduction.html

Jesam. Siguran sam i da je sigurnije i bolje i od mog i od tvoga rijesenja.

Pozdrav

Pozdrav:)
Nemoj biti lijen sa tim formama, vjeruj mi poslije bude viơe posla popraviti moguća sranja, nego napraviti malo bolju formu za input nekih podataka. Ne vjeruj nikome tko ispunjava web forme :slight_smile:

Hehe, nisam ljen napravim ja za svaki input i output funkciju da sprijeci bilo kakvu mogucnost da se ubaci neki kod, samo sam za ovo neki dan tek sazno da se moze preko mozile editirat value.

Pa nije browser napravljen po granicama zakona. Praktički bilo tko moĆŸe napraviti vlastiti browser i s njim submitati forme kakve ĆŸeli na tvoj page.
Ali nije potrebno da radi svoj browser da te zezne, kad ima nebrojeno drugih načina.
Zato jedino potpunu kontrolu imaĆĄ na serveru
nemoj nikad razmiĆĄljati dali se na client strani neĆĄto moĆŸe ili ne moĆŸe
jer tamo se SVE moĆŸe ĆĄto nekome padne na pamet, i ako si da dovoljno truda.

Ok hvala ba savjetu.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Profit Monkey