Avatar billede dtc Nybegynder
08. februar 2006 - 19:06 Der er 5 kommentarer og
1 løsning

Gæstebog bliver spammet - hvad kan man gøre?

Hej Jeg har en gæstebog i ASP som bliver spammet HELT vildt med jævne mellemrum...hvordan kan man stoppe dette??

Jeg har vedhæftet koden for selve formen - som der bliver indtastet i samt selve add record siden.....

<----- Form koden ------>

  <form method="POST" class="css" action="oprat_besked.asp">
                       
                      </tr>
                      <tr>
                        <td class="unnamed1">Headline</td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td>
                          <input type="text" name="overskrift" size="60">
                        </td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="unnamed1">Message</td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td>
                          <textarea rows="5" name="Besked" cols="60"></textarea>
                        </td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="unnamed1">Your name</td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td>
                          <input type="text" name="Navn" size="40">
                        </td>
                        <td>&nbsp;</td>
                      </tr>
                      <tr>
                        <td class="unnamed1">Your e-mail adress</td>
                      </tr>
                      <tr>
                        <td height="29">
                          <input type="text" name="link" size="40">
                        </td>
                        <td height="29">&nbsp;</td>
                      </tr>
                      <tr>
                        <td valign="top" align="left" class="unnamed1">Your homepage
                          adress</td>
                        <td height="2%">&nbsp;</td>
                      </tr>
                      <tr>
                        <td valign="top" align="left">
                          <input type="text" name="www" size="40">
                        </td>
                        <td height="2%">&nbsp;</td>
                      </tr>
                      <tr>
                        <td valign="top" align="left"> <br>
                          <input type="submit" value="Sign Guestbook" name="submit">
                          <input type="reset" value="Reset" name="reset">
                        </td>
                        <td height="2%">&nbsp;</td>
                      </tr></form>



<------ oprat_besked.asp ------>


<%

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("guestbook.mdb")

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From guestbook"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("overskrift") = Request.form("overskrift")
      rs("Besked") = Request.form("Besked")
      rs("Navn") = Request.form("Navn")
      rs("Dato") = Now
      rs("email") = Request.form("link")
      rs("www") = Request.form("www")
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing
response.redirect ("guestbook.asp")
%>
Avatar billede mini-me Nybegynder
08. februar 2006 - 20:11 #1
Hey,

En ide kunne være at lave et billede-felt hvor i der bliver genereret en kode: eks. AXY1AB som brugeren så kan se, denne kode skal indtastes i et felt du opretter og så sammenligner du resultatet, og hvis brugeren har indtastet samme kode som står i billedet, så kan han poste og hvis det ikke matcher kan han ikke poste.

DU kan se på http://www.serverobjects.com/comp/Aspimage.htm <-- her er lidt hjælp til hvordan du kan tilføje tekst til et billede.
Avatar billede musti776 Nybegynder
08. februar 2006 - 22:22 #2
du kunne også overveje at gemme brugernes IP oplysninger og håbe på at dem som spammer har faste ip adresser.. så kan du udelukke de bruger du synes der spammer..

det er selvfølgelig ikke helt optimalt og vil være nytteløs hvis de ikke har faste ip..

den mere sikre metode vil være at du laver et medlemssystem...
Avatar billede Slettet bruger
08. februar 2006 - 23:09 #3
Du kunne også udelukke mange spammere ved at sætte en begrænsning på hvor tit hver ip-adresse må skrive i din gæstebog...

- For eksempel kunne man lave det sådan at hver ip kun kan skrive i din gæstebog én gang om ugen maks.!

Det er min erfaring at med denne metode bliver mange spammere trætte af denne begrænsning... Men som musti776 siger så er den mest sikre metode nu stadig et medlemssystem...

\Dan
Avatar billede dtc Nybegynder
09. februar 2006 - 08:12 #4
Hejsa!

Hvordan sætter man sådanne en begrænsning???? Eks. at et IP nummer max kan skrive 1 gang om ugen???

/dc
Avatar billede softspot Forsker
09. februar 2006 - 12:33 #5
Lidt op ad mini-me's forslag dog uden den behov for en billedekomponent findes her: http://www.softspot.dk/forside/erfaringsdeling/webformularer.aspx
Avatar billede larsbachmanndk Nybegynder
09. februar 2006 - 14:56 #6
Du kan lave et filter, der sortere ord fra som du selv definere.
noget i denne stil

------

<%
BadWords = "poker,fuck" ' ingen mellemrum, kun komma

strTekst = Request.Form("besked")
strTekst = Replace(strTekst, "'", "''")
BadWordArr = Split(BadWords, ",")

BadWord = ""

For BadWordNo=0 To UBound(BadWordArr)
    If instr(strTekst, BadWordArr(BadWordNo)) > 0 Then
        BadWord = BadWordArr(BadWordNo)
    End If
Next

If BadWord <> "" Then
    Response.write ("<b>" & BadWord & "</b> kan ikke skrives pga spam")
Else

Const adOpenKeyset = 1
Const adLockOptimistic = 3

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "PROVIDER=MSDASQL;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("guestbook.mdb")

    Set rs = Server.CreateObject("ADODB.RecordSet")
    strSQL = "Select * From guestbook"
    rs.Open strSQL, Conn, adOpenKeyset, adLockOptimistic

      rs.AddNew
      rs("overskrift") = Request.form("overskrift")
      rs("Besked") = strTekst
      rs("Navn") = Request.form("Navn")
      rs("Dato") = Now
      rs("email") = Request.form("link")
      rs("www") = Request.form("www")
      rs.Update

    rs.Close
    Set rs = Nothing

Conn.Close
set Conn = Nothing
response.redirect ("guestbook.asp")
%>
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