15. august 2005 - 23:14Der er
25 kommentarer og 2 løsninger
Hvordan frasortere HTML-tags i et textarray?
Hej - Jeg deltager i en debat på et andet forum. Man indtaster sit indlæg i et textarray, som derpå behandles af et ASP-program, hvorefter indlægget bringes som det øverste på forum. Jeg har opdaget en alvorlig fejl, et hul i sikkerheden som jeg gerne vil have lukket. Det viser sig, at ASP-programmet ikke rører ved den indtastede tekst overhovedet. Det er jo meget godt, hvis brugeren fx blot ønsker at fremhæve et ord med fed skrift eller sådan - og hvis brugeren desuden husker at bruge både start- og slut-tags. Men ASP-programmet accepterer simpelt hen ALT! Dvs, hvis jeg i et indlæg indtaster <div style="{ ... }"} og derefter UNDLADER at afslutte mit div-tag, så vil der opstå problemer for de foregående indlæg (i hvert fald i nogle browsere)! Jeg vil gerne give webmaster et godt råd - nemlig dét at smide samtlige HTML-tags udenbords, førend teksten bringes. Jeg tror, at nogle af jer ved hvordan man gør. Hilsen Per
Jeg ville matche med en regexp, som søgte på start og slut af et tag, i javascript vil det blive ca. sådan:
<script type="text/javascript"> var html ="<b>Her er en tekst</b>, som <u>indeholder</u> html-tags<img src='../billede.jpg'>"; var reg = /<[^>]*?>/g; html = html.replace(reg,""); alert(html); </script>
<script type="text/javascript"> var html ="<b>Her er en tekst</b>, som <u>indeholder</u> html-tags<img src='../billede.jpg'>"; var reg = /<.*?>/g; html = html.replace(reg,""); alert(html); </script>
Men at basere sikkerheden på at lappe hullet i JavaScript er imidlertid en dårlig løsning - JavaScript kan hurtigt disables. Rigtig sikkerhed fås kun på server-siden. Clientside scripting er mere beregnet på at stille noget brugerbelighed til rådighed.
-- og 200 er langt over det passende point-tal ...
-- kan være at regexps er en anelse langhåret for de fleste, så man kan _måske_ forsvare at kalde det er svært spørgsmål (altså 60 point !-), men det tog mig altså længere tid at skrive eksempelstrengen end resten af koden, så egentlig bør det være i nærheden af 30 point !o]
regexp er sort snak for mig - men jeg skal nok komme efter det. document.getElementById er fancy stuff, og alt det med createElement er noget jeg osse har til gode. - Nå, nu venter vi kun på nielle. - Hilsen Per
Første gang, jeg så en RegExp, var her på E, hvor Erik Jacobsen viste en. Min reaktion var et latter-hyl og noget "jaja ... et REGULÆRT udtryk ... pis med dig *ROTFL*" - så den stakkels Erik sikkert har tænkt, at "... nu sætter brugerbesynderligheden olebole zq da for alvor sejl på en bananbåd! Bare han nu ikke ryger igennem Distrikts Psykiatriens hullede net" :D
Jeg uvidende sjæl kendte kun til noget HTML, JS og PHP - men havde aldrig stiftet bekendtskab med et regulært udtryk (i kodesammenhæng) ...... det ændrede Erik så ved med noget, jeg misforstod som en joke :)
Ja, Ole, du har da fundet ud af at forskellen mellem almindelige programmering og så regulære udtryk, svarer til forskellen på at fælde et 8 meter højt træ med en flintøkse i forhold til at bruge en motorsav. En stenalder-person ville nok have haft samme reaktion overfor motorsaven, som du havde overfor de kære regulære udtryk. ;)
Jamen, jeg _var_ jo stenalder-manden på det tidspunkt, Erik ... omend en ihærdig stenalder-mand. Det er da forholdsvis hurtigt, jeg er nået til Jernalderen ;D
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.