Autor | Zpráva | ||
---|---|---|---|
Kandown Profil |
#1 · Zasláno: 13. 2. 2012, 22:38:26
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 |
#2 · Zasláno: 13. 2. 2012, 23:24:16
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 |
#3 · Zasláno: 14. 2. 2012, 09:17:06
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 |
#4 · Zasláno: 14. 2. 2012, 11:41:11
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 |
#5 · Zasláno: 14. 2. 2012, 11:49:25
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 |
#6 · Zasláno: 14. 2. 2012, 12:05:14
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 & 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 |
#7 · Zasláno: 14. 2. 2012, 13:19:30
Č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 |
#8 · Zasláno: 14. 2. 2012, 14:38:10
strip_tags() - s druhým nepovinným parametrem, což je vyjmenovaný seznam povolených tagů.
|
||
Časová prodleva: 11 let
|
0