Autor Zpráva
Kandown
Profil
Ahoj, snažím sa vytvoriť bezpečný guestbook a tak potrebujem nejak zabezpečiť rôzne nečistoty, ktoré môžu ľudia napáchať. Potreboval by som teda poradiť. Snažil som sa využiť htmlentities(), avšak som zistil, že to nepracuje s diakritikou, čo je pre mňa nepoužiteľné. Čo iné by ste mi odporučili?
Plus pár otázok na objasnenie:

1. Aké najčastejšie problémy s Guestbookmi sú ohľadom zabezpečenia?
2. Nejaké rady skúsených na túto problematiku? Čo mi môže robiť problém?
3. Bezpečnosť, bezpečnosť, bezpečnosť.

Ďakujem
Davex
Profil
Kandown:
Snažil som sa využiť htmlentities(), avšak som zistil, že to nepracuje s diakritikou, čo je pre mňa nepoužiteľné.
Jak může být diakritika nebezpečná při vypsání na stránku?

Nechtěl jsi náhodou použít jen htmlspecialchars()?
Keeehi
Profil
Kandown:
- Ošetřit si odesílací formulář proti automatizovanému odesílání
- Pokud ukládáš data do souboru, tak možná pozor na paralelní přístup.
- Pokud ukládáš do db tak pozor na SQL injection.

Jinak ty funkce htmlentites/htmlspecialchars se používají až při výpisu.
Kandown
Profil
Asi si ma nepochopil Davex a možno som to napísal málo zrozumiteľne :) Ja chcem, aby som mal diakritiku, ale nechcem html vstupy, aby mi niekto zaspamoval guestbook divom typu <div id="spam" style="height: 1000000px;">spam</div>. Potrebujem sa zbaviť HTML znakov a ochrániť to pred SQL Injection. Na SQL Injection použijem zrejme mysql_real_escape_string(). Je to postačujúce?

Používal som na odstránenie tých html tagov funkciu htmlentities(), no zrejme som ju použil zle a mal som použiť funkciu htmlspecialchars(), s ktorou to funguje a obchádza to html tagy, takže to robí to, čo som chcel + zobrazuje to diakritiku tak, ako som chcel a nezobrazuje ju ako znaky, ktoré nie sú pre normálneho užívateľa čitateľné :)

Zatiaľ je toto môj druhý väčší projekt a tak sa budem ešte biť s niekoľkými vecami a som rád za každú pomoc od Vás, za ktorú Vám veľmi pekne ďakujem a moc si to cením.

Riešenie: Nahradil som funkciu htmlentities(), ktorá síce obchádzala html tagy, ale pokazila diakritiku, za funkciu htmlspecialchars().



Ďakujem veľmi pekne
Keeehi
Profil
Jak s htmlentities tak i s htmlspecialchars jsem s diakritikou problémy neměl. Nemohlo to být způsobené něčím jiným? Třeba při ukládání do databáze?
Jinak u obou funkcí se dá třetím parametrem nastavit kódování.
Ugo
Profil
htmlentities převede diakritiku na její entity (&iacuate;) atp (možná na číselnej zápis, teď nevím) což se projeví jen ve zdrojáku, ale když nad tímhle řetězcem zavoláš htmlspecialchars, tak ti to převede & na &amp; takže pak i ve stránce budeš mít V&iacuate;tejte. čili htmlspecialchars(htmlentities($text)); asi bude dělat problémy.
Kandown
Profil
Čo v prípade, že chcem použiť nejaký freeware WYSIWYG editor (napr. TinyMCE) a povoliť úpravy textu, napríklad aby ho mohli formátovať (bold, italic, unordered list, ...) ale chcem zabrániť tomu, aby neboli zároveň vkladané html tagy, ktoré by mohli spôsobiť vyššie spomínané?
Keeehi
Profil
strip_tags() - s druhým nepovinným parametrem, což je vyjmenovaný seznam povolených tagů.

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: