CJ největší affiliate síť v ČR, 40+ inzerentů CPC,CPL,CPO model. Začni vydělávat teď
Zobrazují se odpovědi 1 až 15 z 15

Ochrana formuláře

  1. Udělal jsem pro jeden svůj web vkládání komentářů. Celkem snadná aplikace, ve Wordpressu samozřejmost no ale k věci: mám tam snad všechny možné ochrany ale jedna mi ještě chybí a zatím jsem nenašel žádný návod, jak ji udělat. Jde mi o to, aby do těch komentářů lidi nevkládali tagy jako <a href= ....> nebo <img src= > a podobne. Taky je takhle jiste mozne vlozit nejake kody urcene k hackingu a toho bych se nerad dozil ze mi nekdo tu databazi smazne :) Jsou v ni sice jen ty komentare, ale lidi by se nezlobili na toho hackera ale na me, ktery to dostatecne nezabezpecil :) Jinak prispevky se z formulare pretahnou na promenny a pak se zapisou do MySql databaze.
    Takze bych chtel pozadat o radu, jak neco takoveho co nejsnadnejsim zpusobem udelat.
    Naposledy upravil Igor.Foltyn : 04.04.2007 v 13:27

  2. Happy Robot :]

    Co se právě děje na Webtrhu?

  3. Uzivatelsky vstup (komentar) po prijeti muze byt osetren dvemi zakladnimi zpusoby:
    1. funkci htmlspecialchars($vstup, ENT_QUOTES); tim se prevedou specialni znaky na html entity, tim tagy ztrati vyznam, ale budou se zobrazovat.

    2. funkci strip_tags(), tzn. $vstup = strip_tags($vstup);, tagy se oriznou a bude vracen pouze textovy obsah.

    Data pred ulozenim do MySQL DB se museji escapovat pomoci funkce mysql_real_escape_string(); a take by se melo kontrolovat, zda napriklad vstup cislo skutecne uzivatel vyplnil cislem, k tomu slouzi mj. pretypovani int() a zjistovani is_numeric()
    Naposledy upravil --==[FReeZ]==-- : 09.04.2007 v 20:11

  4. Skvele diky za info. Doufam, ze to bude fungovat v php 5. Asi vyzkousim tu prvni funkci htmlspecialchars, to vypada dobre. Je to pak mozny rovnou soupnout do databaze nebo je treba navic pridat i funkci mysql_real_escape_string() ?

    Co se tyce ty druhy casti, automaticky se mi tam pred vlozenim do databaze vkladaji \ pred uvozovky a dalsi podobne znaky takze to jenom pred vypsanim z databaze projedu pres stripslashes($row[1])

    Diky za info!

  5. neni zac, mysql_real_escape_string() je potreba pouzit v kazdem pripade pro veskere vstupy od uzivatele, ukladane do databaze. Viz SQL injection http://www.acunetix.com/websitesecur...-injection.htm

  6. u strip_tags je výhoda v tom, že můžeš zvolit, které tagy jsou povolené, takže můžeš nechat uživatele alespoň boldit a underlinit, aby to nebylo nuda :), na img opravdu pozor je to velmi nebezpečné.

  7. nejlepsi je, nadefinovat si vlastni tagy a ty par grepovat a prevadet na standardni HTML. takhle to mam ja...

  8. Kdepak, nejlepší je použít Texy!

  9. Acci: no nevim, me se texy vubec nelibi, navic integrace do vlastnich skriptu neni tak jednoducha, jako jeden radek grepu...

  10. navic integrace do vlastnich skriptu neni tak jednoducha, jako jeden radek grepu...
    Ano, je to velmi složité. Tři řádky jsou strašně moc.

  11. Takze zda se, ze jsem to zdarne vyresil. Sjizdim to funkci htmlspecialchars a funkci mysql_real_escape_string. Byl to skvely pocit to dodelat do naprosto dokonale podoby :) Diky vsem za help, hlavne ale id --==[FReeZ]==--
    thanx!

  12. $s_AllowedTags = '<a><b><u><i><br>'; // zakladni tagy ktere by komentar mel mit
    $s_Text = strip_tags($s_Text, $s_AllowedTags); // samotne orezani tagu

  13. No nevím mě texy pořád nepřipadá, že by ho dokázala používat třeba moje máti. Pro to je ideální třeba TinyMCE v simple rozhraní. No a z toho potřebuju HTML tagy zpracovávat.

    Když už se tady na to ptáte, tak bych potřeboval nějaký čistič HTML, který by povolil jen některé tagy, nepovolil by hacky typu <a href="javascript:alert('shit')"> a podobné, vyházel všechny nechtěné atributy apod. Koukal jsem do Pearu, ale je tam akorát nějaká šílená stará knihovna. Máte na to někdo něco?

  14. mě se teda ještě nepovedlo texy dostat do mych skriptu nějak sem to nepochopil

  15. tak po nejake dobe muzu rict, ze spammeri muj dokonaly formular obesli a nektere weby s diskuzemi zavalili spamy :(

  16. Platí základní pravidla:

    1) V případě, že není zapnutá direktiva magic_quotes_gpc, musíš před zápisem do db escapovat metaznaky (apostrofy, apod.) funkcí addslashes().

    2) Funkce htmlspecialchars() se používá až při výstupu (výpis komentáře).

    3) Funkce strip_tags() je pro ošetření nevhodná, protože se dá lehce obejít a uživatele může zaskočit.

    Doporučuji přečíst:
    - http://php.vrana.cz/escapovani.php
    - http://php.vrana.cz/strip_tags.php
    - kniha "Zranitelný kód"

Podobná témata

  1. Formulář v Opeře
    By Martin Schlemmer in forum Novinky
    Odpovědí: 3
    Poslední příspěvek: 17.04.2007, 15:06
Hostujeme u Server powered by TELE3