Avatar billede hrlund Nybegynder
25. november 2001 - 23:25 Der er 3 kommentarer

Undgå HTML m.m

Hvordan undgår jeg folk kan bruge html når de opretter sig i mit community ?

<%
If Trim(Request(\"navn\")) > \"\" Then
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"../../db/bbk_medlemmer.mdb\")
Conn.Open DSN
if request(\"chatnavn\") = \"\" OR request(\"password\") =\"\" OR request(\"navn\") =\"\" OR request(\"alder\") =\"\" OR request(\"bosted\") =\"\" OR request(\"kon\") =\"\" OR request.form(\"info\") =\"\" OR request(\"status\") =\"\" then
Response.Write (\"<b>Du manglede at indtaste nogen oplysninger</b>\")
else
Conn.Execute \"INSERT INTO bruger (chatnavn,password,navn,alder,bosted,kon,email,status,info,godkendt,kl,dato,ip) VALUES (\'\" & Request(\"chatnavn\") & \"\',\'\" & Request(\"password\") & \"\',\'\" & Request(\"navn\") & \"\',\'\" & Request(\"alder\") & \"\',\'\" & Request(\"bosted\") & \"\',\'\" & Request(\"kon\") & \"\',\'\" & Request(\"email\") & \"\',\'\" & Request(\"status\") & \"\',\'\" & Request(\"info\") & \"\',\'Nej\',\'\" & time() & \"\',\'\" & date() & \"\',\'\" & Request(\"REMOTE_ADDR\") & \"\')\"

Conn.Close
Set Conn = Nothing
Response.Write \"<font size=2><b><center>\"
Response.Write \"Du er nu tilmeldt. \"
Response.Write \"</center></b></font>\"
%>
Avatar billede Slettet bruger
25. november 2001 - 23:43 #1
Avatar billede eagleeye Praktikant
26. november 2001 - 00:02 #2
Jeg har denne function. Den skal dog kaldes i et loop for at tjekke om der er nogle som forsøger at snyde...:


Function RemoveHTML( strText )
  Const TAGLIST = \";!--;!DOCTYPE;A;ACRONYM;ADDRESS;APPLET;AREA;B;BASE;BASEFONT;BGSOUND;BIG;BLOCKQUOTE;BODY;BR;BUTTON;CAPTION;CENTER;CITE;CODE;COL;COLGROUP;COMMENT;DD;DEL;DFN;DIR;DIV;DL;DT;EM;EMBED;FIELDSET;FONT;FORM;FRAME;FRAMESET;HEAD;H1;H2;H3;H4;H5;H6;HR;HTML;I;IFRAME;IMG;INPUT;INS;ISINDEX;KBD;LABEL;LAYER;LAGEND;LI;LINK;LISTING;MAP;MARQUEE;MENU;META;NOBR;NOFRAMES;NOSCRIPT;OBJECT;OL;OPTION;P;PARAM;PLAINTEXT;PRE;Q;S;SAMP;SCRIPT;SELECT;SMALL;SPAN;STRIKE;STRONG;STYLE;SUB;SUP;TABLE;TBODY;TD;TEXTAREA;TFOOT;TH;THEAD;TITLE;TR;TT;U;UL;VAR;WBR;XMP;\"
  Const BLOCKTAGLIST = \";APPLET;EMBED;FRAMESET;HEAD;NOFRAMES;NOSCRIPT;OBJECT;SCRIPT;STYLE;\"
   
  Dim nPos1
  Dim nPos2
  Dim nPos3
  Dim strResult
  Dim strTagName
  Dim bRemove
  Dim bSearchForBlock
   
  nPos1 = InStr(strText, \"<\")
  Do While nPos1 > 0
    nPos2 = InStr(nPos1 + 1, strText, \">\")
    If nPos2 > 0 Then
      strTagName = Mid(strText, nPos1 + 1, nPos2 - nPos1 - 1)
      strTagName = Replace(Replace(strTagName, vbCr, \" \"), vbLf, \" \")
      nPos3 = InStr(strTagName, \" \")
      If nPos3 > 0 Then
        strTagName = Left(strTagName, nPos3 - 1)
      End If
      If Left(strTagName, 1) = \"/\" Then
        strTagName = Mid(strTagName, 2)
        bSearchForBlock = False
      Else
        bSearchForBlock = True
      End If   
      If InStr(1, TAGLIST, \";\" & strTagName & \";\", vbTextCompare) > 0 Then
        bRemove = True
        If bSearchForBlock Then
          If InStr(1, BLOCKTAGLIST, \";\" & strTagName & \";\", vbTextCompare) > 0 Then
            nPos2 = Len(strText)
            nPos3 = InStr(nPos1 + 1, strText, \"</\" & strTagName, vbTextCompare)
            If nPos3 > 0 Then
              nPos3 = InStr(nPos3 + 1, strText, \">\")
            End If
            If nPos3 > 0 Then
              nPos2 = nPos3
            End If
          End If
        End If
      Else
        bRemove = False
      End If
      If bRemove Then
        strResult = strResult & Left(strText, nPos1 - 1)
        strText = Mid(strText, nPos2 + 1)
      Else
        strResult = strResult & Left(strText, nPos1)
        strText = Mid(strText, nPos1 + 1)
      End If
    Else
      strResult = strResult & strText
      strText = \"\"
    End If
    nPos1 = InStr(strText, \"<\")
  Loop
  strResult = strResult & strText
  RemoveHTML = strResult
End Function


her er det loop du skal hvade i koden:

textToGuestbook = RemoveHTML(request.form(\"guestComment\"))
textToGuestbook2 = textToGuestbook
runNo = 1
AttackLimit = 5
do
  textToGuestbook = textToGuestbook2
  textToGuestbook2 = RemoveHTML(textToGuestbook)
  runNo = runNo + 1
loop until (textToGuestbook = textToGuestbook2) OR (runNo = AttackLimit)

if (runNo < AttackLimit) then
  insert i datbase (textToGuestbook2)



Det er lidt ekstra.Jeg har ikke fået lagt de to ting sammen det ville nok være at fortræke. Men den skulle gerne virke bedre en det link du har fået fra space den fjerne alt tekst mellem < og >. Jeg har klippet koden fra min gæstebog.

Hvis du er nogle HTML tags du vil beholde så kan du rette i
const TAGLIST = \";!--;...................\"
Bare fjern de tags du ønske må bruges eksvis B for bold.
Avatar billede cliche Nybegynder
26. november 2001 - 09:06 #3
htmlencode(rs(\"ditfelt\"))
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester