|
| Hvordan frasorteres html i formindput? Fra : Jakob Munck |
Dato : 14-12-05 22:59 |
|
Det er særdeles skadeligt for ens website, hvis en bruger indsætter
html-tags (<>) i formindput, så dem er man nødt til at rense formindholdet
for, inden det lægges ind i databasen. Ellers kan websiten blive ødelagt,
når det vises.
Men hvordan bortsorterer man html-tags i formindputtet??
v.h.
Jakob
| |
Jesper H (15-12-2005)
| Kommentar Fra : Jesper H |
Dato : 15-12-05 01:17 |
| | |
Jakob Munck (15-12-2005)
| Kommentar Fra : Jakob Munck |
Dato : 15-12-05 02:07 |
|
"Jesper H" <jesper.haukrogh@gmail.com> skrev i en meddelelse
news:1134605808.872968.302300@g47g2000cwa.googlegroups.com...
Ved hjælp af funktion htmlentities (tror jeg nok):
http://dk2.php.net/manual/en/function.htmlentities.php
Tak for det. Mon ikke også denne replace-funktion kan fjerne html effektivt?
$message = str_replace("<", " ", $message);
$message = str_replace(">", " ", $message);
v.h.
Jakob
| |
Jesper H (15-12-2005)
| Kommentar Fra : Jesper H |
Dato : 15-12-05 02:02 |
| | |
Jesper H (15-12-2005)
| Kommentar Fra : Jesper H |
Dato : 15-12-05 10:03 |
|
Det kan den vist godt, men det burde måske nærmere være:
<?php
$message = str_replace("<", "<", $message);
$message = str_replace(">", ">", $message);
?>
Det kan jo godt være at der i teksten er et større-end tegn eller
mindre-end, som ikke er tiltænkt som html-kode.
Men hvorfor så ikke bruge htmlentities() eller htmlspecialchars() ...
--
Mvh Jesper, http://fdf.dk/landsdel1/
| |
bonfils (15-12-2005)
| Kommentar Fra : bonfils |
Dato : 15-12-05 11:27 |
|
On Wed, 14 Dec 2005 22:59:25 +0100, "Jakob Munck"
<jm2_fjern_dette@webspeed.dk> wrote:
>Det er særdeles skadeligt for ens website, hvis en bruger indsætter
>html-tags (<>) i formindput, så dem er man nødt til at rense formindholdet
>for, inden det lægges ind i databasen. Ellers kan websiten blive ødelagt,
>når det vises.
>
>Men hvordan bortsorterer man html-tags i formindputtet??
Udover de nævnte:
http://dk2.php.net/manual/en/function.strip-tags.php
--
bonfils
http://kim.bonfils.com
| |
Jakob Munck (15-12-2005)
| Kommentar Fra : Jakob Munck |
Dato : 15-12-05 12:58 |
| | |
Peter Brodersen (15-12-2005)
| Kommentar Fra : Peter Brodersen |
Dato : 15-12-05 14:04 |
|
On Wed, 14 Dec 2005 22:59:25 +0100, "Jakob Munck"
<jm2_fjern_dette@webspeed.dk> wrote:
>Det er særdeles skadeligt for ens website, hvis en bruger indsætter
>html-tags (<>) i formindput, så dem er man nødt til at rense formindholdet
>for, inden det lægges ind i databasen. Ellers kan websiten blive ødelagt,
>når det vises.
Bare for at opsummere:
- du kan bruge strip_tags() til helt at fjerne tags og hvad der minder
om.
- du kan bruge htmlspecialchars() til at rette bl.a. < og > til <
og > (så det vises som mindre-end- og større-end-tegn). Det kan
være at foretrække, hvis folk bruger < og > til noget reelt i deres
indlæg.
- htmlspecialchars() er at foretrække frem for htmlentities(), idet
sidstnævnte også retter bl.a. æ til æ m.m., hvilket bl.a. gør
søgninger mere besværlige
- normalt er det ved output, at man afvikler funktionerne, og ikke ved
indsættelse af dataen. Tanken er at dataen i databasen er
medieuafhængigt, så man ikke har fx unødvendig HTML liggende i sin
database. Overheadet ved at afvikle fx htmlspecialchars() hver gang er
vitterligt minimalt, og det er typisk en uhensigtsmæssig optimering at
gøre det "en gang for alle" ved indsættelse i databasen. Hvis man fx
vil sende e-mails med indholdet eller præsentere indholdet på en anden
måde, er det måske ikke hensigtsmæssigt at indholdet pludselig er
fedtet ind i HTML-entities.
--
- Peter Brodersen
| |
|
|