Autor | Zpráva | ||
---|---|---|---|
joe Profil |
#1 · Zasláno: 22. 8. 2008, 20:50:08
Ještě mám otázku týkající se zabezpečení, jak ukládat data do databáze od uživatele? Dejme tomu, že mu chci povolit všechny znaky, mám tam uložit všechno? Pak by mohlo hrozit nějaké nebezpečí, kdybych někde zapomněl na htmlspecialchars na výstupu. Nebo mám z původního textu odříznout všechno pomocí strip_tags? Tím mu ale mohu narušit nějaký text co vkládá, i když je pravda, že by žádně html, php, js neměl vkládat...
Díky za tipy. |
||
Taps Profil |
#2 · Zasláno: 22. 8. 2008, 20:58:41
Podle mě když použiješ htmlspecialchars tak nemusíš používat strip_tags, máš pravdu že by běžný uživatel neměl vkládat např. do návštěvních knih žádné js a php kody.
Také je dobré slashovat výstupy nebo použít mysql_real_escape_string, nebo se dá rovněž použít regulární výraz pro vymezení znaků |
||
joe Profil |
#3 · Zasláno: 22. 8. 2008, 21:09:12
Taps
Myslel jsem použití strip_tags na vstup před vložením do db a htmlspecialchars až na výstup. „Také je dobré slashovat výstupy nebo použít mysql_real_escape_string, nebo se dá rovněž použít regulární výraz pro vymezení znaků“ No to se mi nezdá :-) Pokud by uživatel někam napsal něco, třeba: něco ' něco Tak by se mu pak objevilo něco \' něco A to asi není to pravý, takže slashovat výstup určitě ne :-) mysql_real_escape_string používám na vstup, na výstup podle mě tedy určitě není. |
||
Mike8748 Profil |
#4 · Zasláno: 22. 8. 2008, 21:30:00
joe
>> „Také je dobré slashovat > No to se mi nezdá :-) a od toho je prave funkce stripslashes, kterou pouzijes pri vypisu (addslashes pri ukladani) |
||
joe Profil |
#5 · Zasláno: 22. 8. 2008, 21:57:06
Mike8748
Proč bych měl použít stripslashes, když vstup do db je ošetřen mysql_escape_string? Pokud do inputu napíšeš něco ' něco a při vkládání do db se použije mysql_escape_string, který z toho udělá "něco \' něco", do databáze to už uloží bez toho zpětného lomítka, protože mysql tomu rozumí. Tak proč stripslashes nebo mi něco někde uniklo o tom? |
||
Taps Profil |
#6 · Zasláno: 22. 8. 2008, 22:05:02
joe
bud stripslashes nebo mysql_real_escape_string |
||
joe Profil |
#7 · Zasláno: 22. 8. 2008, 22:09:29
Taps
Kde? Pořád nevím co myslíš, vstup / výstup? To vím, že jedno z toho, addslashes se mi nelíbí. Koukám, že jsem napsal první příspěvěk jinak než jsem chtěl a proto to k tomu tak směřuje, ale vkládání dat k tomu taky patří. |
||
Alphard Profil |
#8 · Zasláno: 22. 8. 2008, 22:29:59
nedělejte z toho kovbojku...
vstupní data ošetříme na sql injection a to tak, že je escapujeme, ať si každký použije funkci jakou chce výstupní data ošetříme na XSS a nebudeme to řešit půl dne |
||
joe Profil |
#9 · Zasláno: 22. 8. 2008, 22:40:40 · Upravil/a: joe
Alphard
Díky, tyhle články jsem už před delší dobou četl. Takže když to shrnu, co jsem chtěl vědět je, že mi stačí htmlspecialchars, co používám, myslel jsem, co kdybych na to někde zapomněl... je to totiž pak těžko vystopovatelné... --- Proto jsem chtěl vědět, jestli není nebezpečné ukládat přesně to, co uživatel zadá, protože by se mi to mohlo někde vymstít. |
||
Alphard Profil |
#10 · Zasláno: 22. 8. 2008, 22:56:57
„Proto jsem chtěl vědět, jestli není nebezpečné ukládat přesně to, co uživatel zadá, protože by se mi to mohlo někde vymstít.“
toto vnímám jako jinou otázku, už to trochu zavání CSRF útokem, který ale moc nesouvisí s tou databází, spíš s tím někde vymstít, takže jen stručně pár zdrojů: http://www.soom.cz/index.php?name=articles/show&aid=484 http://php.vrana.cz/cross-site-request-forgery.php http://www.chapadlo.cz/weblog/clanek/hackerem-sam-sobe-3-csrf dočtete se, že se doporučuje obrana tokeny, ale je to náročné a není to 100% na webu menšího významu bych skoro doporučil vykašlat se na to a pravidelně zálohovat |
||
joe Profil |
#11 · Zasláno: 22. 8. 2008, 23:47:58
Alphard
Přímo se mi nejednalo o XSRF, ale díky za odkazy, o nějakých stránkách jsem nevěděl. |
||
Časová prodleva: 16 let
|
0