Autor Zpráva
aladin
Profil *
zdravím,
mám normální formulář v html,ale do formuláře vkládám pomocí document.getEmelentById().value hodnotu kterou následně odesílám ke zpracování
tuto hodnotu vkládám do inputu type hidden
potřebuju aby to bylo víc zabezpečený,jelikož tohle lze jednoduše obejít a hodnotu jednoduše změnit a to nechci
jde tu hodnotu poslat přímo z js?popř i nějak zakodovat a v php pak dekodovat?třeba sha1,md5 apod?..
nebo nějaký jiný lepší nápad jak to zabezpečit aby se tato hodnota nedala změnit?
myslel jsem že bych poslal třeba víc těchto hodnot jinak zašifrovaných a v php je porovnal pokud by nesouhlasily tak by to vrátilo error..ale to se mě zdá zbytečné dlouhé...
formulář posílám metodou POST
díky za odpovědi
Joker
Profil
aladin:
Z logiky věci není možné ochránit data odesílaná z klienta proti podvržení.
To se musí vyřešit na serveru.
aladin
Profil *
Joker:
aha,a existuje alespon nějaké zašifrování v js jako je např v php? např base64?
nebo lze z js předat hodnotu do php abych jí tam mohl ošetřit a zašifrovat?
peta
Profil
Ne, v js/html neni moznost, jak to zabezpecit. Pouzij https.
Hashovani na sha1 samozrejme je, pokud se ti ovsem bude zdat, ze je to dostatecne bezpecne, ale vzdycky to muzes prepsat. Ten input tam mit nemusis, muzes si ho pridat az javascriptem nebo promennou pridat rucne. To same ale muze udelat utocnik, kdyz si prohledne tvuj js. Nebo muze sifrovani preskocit a vlozit sha1 kod primo.
http://phpjs.org/functions/sha1/
http://pajhome.org.uk/crypt/md5/sha1.html
Joker
Profil
aladin:
aha,a existuje alespon nějaké zašifrování v js jako je např v php? např base64?
Poznámka, SHA1, MD5 ani base64 není šifrování.
Ale jinak určitě nebude problém vygooglit implementaci nějakého šifrovacího algoritmu v JS.

Potíž je, že to nemůže chránit proti podvržení dat, když případný útočník může tomu šifrovacímu skriptu dodat jakákoliv data bude chtít.

Kdyby šlo o to chránit data proti zachycení během přenosu, tak to by v některých případech šlo, ale na to bude nejjednodušší a nejbezpečnější použít HTTPS.
_es
Profil
aladin:
existuje alespon nějaké zašifrování v js
A čo bráni tomu, kto by chcel tie dáta podvrhnúť, ich zašifrovať úplne rovnako, ako by to automaticky urobil prehliadač? Veď spôsob zašifrovania má priamo v zdrojovom kóde.
aladin
Profil *
právě že můj hosting https nepodporuje...
a tak jak to dělaj ostatní když mají formulář s nějakou důležitou hodnotou kterou přeposílají a nechtějí aby se dala změnit?
jinač sha1 nejde dekodovat co? jelikož tu hodnotu pak potřebuju v php přečíst a zjistit co je to za hodnotu..
peta
Profil
Ne, sha1 je neco jako soucet. Jde dopocitat mozna reseni. 1+2+3 = 6 | -1+-2+9 = 6
Joker
Profil
aladin:
jak to dělaj ostatní když mají formulář s nějakou důležitou hodnotou kterou přeposílají a nechtějí aby se dala změnit?
Ideální je nepředávat si takovou hodnotu přes klienta.

Například pokud je třeba si předávat takové hodnoty přes více stránek vlastního webu, použije se session (relace).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

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