Vet att detta varit uppe på tapeten ett antal gånger,
och jag har läst diverse lösningar som jag också prövat på.
Men jag har fortfarande problem på sidan
(http://www.reklamracing.se)
Ca 800 inlägg som är spam.
Har jobbat fram ett ip-blockeringsscript, dock funkar det endast när man går in och "markerar" det som spam.
Laddade även ner en färdig gästbok som skulle innehålla någon simplare version av spamskydd (Gruvsjo om jag inte minns fel) men det fungerar inte heller.
Jag funderar på att blockera all text som innehåller [fet]http://[/fet] & [fet]www[/fet] ...
Hur gör jag det?
Är en MS Access databas. Ska jag blockera det på något sätt i databasen,
eller är det lättare att lägga in det i scriptet innan det förs in i databasen?
Du får göra en validering (regExp) för att kolla om innehållet i meddelandet innehåller http:// om det är det du vill stoppa. Vilken databas är inte direkt intressant det är hur du validera indatan innan du sparar ner det till en databas.
Är det en specifik länk som är problemet? Om det är ett visst mönster så kan man ju alltid använda InStr. Eller som sagt RegExp om den matchar ett visst mönster så skall du stoppa postningen till db.
Function SpamPattern(str)
Dim re, FoundMatch
Set re = New RegExp
re.IgnoreCase = True
re.MultiLine = True
re.Pattern = "http://mipagina\.aol\.com\.mx/wqkwnwoex/april-\d+\.html"
FoundMatch = re.Test(str)
Set re = Nothing
End Function
If SpamPattern(textFromForm) Then
'Contains spam url!
Else
'Do the posting of message
End If
1. Placera funktionen utan för loopar/if frågor osv. Placera denna efter din andra funktion "link" eller vad den heter
ersätt:
Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
med:
If Not SpamPattern(msg) Then
Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
End If
Exempelvis.
+ tips från coachen: Bifoga aldrig var du har din databas. ändra path så folk inte hittar din databas.
Och ang. ditt tips från coachen, adressen är ändrad,
ligger en "fejkdatabas" där som dubblett för vissa inlägg.
---------------
Lade upp följande:
Function SpamPattern(str)
Dim re, FoundMatch
Set re = New RegExp
re.IgnoreCase = True
re.MultiLine = True
re.Pattern = "http://mywebpage.netscape.com/qsfegzfuy/april-773.html"
FoundMatch = re.Test(str)
Set re = Nothing
End Function
If SpamPattern(textFromForm) Then
Response.Write("Your Message Contains A Spam Classed Link")
Else
Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
End If
OCh det fungerade tyvärr inte...
Går fortfarande att lägga in inlägg med den länken i
(prövade även att ändra länken som du ser)
Problemet kvarstår tyvärr.
Spelar det någon roll vart jag lägger in definitionen av funktionen?
prövat både högst upp på sidan, och precis ovanför funktionen.
Har ändrat till Msg / msg , men funkar ändå inte..
Jag måste va korkad
Function SpamPattern(str)
Dim re
Set re = New RegExp
re.IgnoreCase = True
re.MultiLine = True
re.Pattern = "http://mipagina\.aol\.com\.mx"
[b]SpamPattern[/b] = re.Test(str)
Set re = Nothing
End Function
Nu funkade det - tack så hemskt mycket.
Dock - hur gör jag om jag ska spärra fler adresser?
Måste jag skriva flera sådana "sektioner";
eller räcker det med ett nytt pattern bara?
Function SpamPattern(str)
Dim re
Set re = New RegExp
re.IgnoreCase = True
re.MultiLine = True
re.Pattern = "([url]http://mipagina\.aol\.com\.mx[/url][b]|[url]http://bob\.com)[/url][/b]"
SpamPattern = re.Test(str)
Set re = Nothing
End Function
Då fortsätter jag med mina idiotiska frågor...
Det spamskyddet funkade, dock efter att ha lagt till 6 nya adresser i pattern,
så fortsätter dom att byta adresser, blir ett helvetes jobb.
Finns det något att göra, så att man kanske inte kan posta samma msg flera ggr i rad? Eller har ni något tips på bästat sättet att få stopp på det?
Jag hade inte gjort så att man meddelar varför inlägget inte postas.
If Not SpamPattern(Msg) Then
Conn.Execute("Insert Into gastbok(namn, mail, url, msg,ip, rubrik) Values('"& namn &"','"& mail &"','"& url &"','"& msg &"','"& Ip &"','"& rubrik &"')")
End If
Men visst.. kollar kanske de top 10 senaste inläggen och om meddelandet är densamma som personen skickar så stoppar du inte in inlägget heller.