Kom ihåg mig?
Home Menu

Menu


Spambekämpning på forum - hur spärrar man ord?

 
Ämnesverktyg Visningsalternativ
Oläst 2008-07-27, 14:32 #11
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Om det handlar om mycket stora mängder spam och det saknas moderatorer på forumet så kan det vara en bra idé att sålla bort inlägg som innehåller vissa ord / teckenkombinationer. Annars kan det ju fungera med att flagga inläggen och skicka vidare till moderatorna för att kontrollera.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-28, 21:53 #12
Yepp Yepp är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 298
Yepp Yepp är inte uppkopplad
Medlem
 
Reg.datum: Mar 2003
Inlägg: 298
Här har du ett fungerande kodexempel med en funktion i asp som kontrollerar om texten som skickas mot databasen innehåller något av de ord som räknas som spam (i det här fallet har jag lagt in några klassiska ord samt http).
Du kan alltså själv flagga ord du inte vill skall få existera i inlägg genom att lägga till de bland de ord som finns separarade med | i words-raden.

I kodexemplet skickas inlägg mot databasen med post och textfältet för själva texten heter "text". Om funktionen IsSpam (med inläggstexten som inparameter) returnerar "true" (dvs innehåller något av orden i wordslistan) så skickas besökaren vidare till du-spammade.asp. Om inte det sker fortlöper arbetet enligt koden som följer efter, dvs lägg in den här funktionen på det stället i koden så att den befinner sig innnan koden som genomför själva lagringen i databasen.

Kod:
<%
// Själva spamkollarfunktionen

Function IsSpam(meddelande)
	Dim objRegExp, words
	words = "poker|casino|viagra|http"
	Set objRegExp = New RegExp
	objRegExp.Pattern=words
	IsSpam = objRegExp.Test(meddelande)
	Set objRegExp = Nothing
End Function

// Anropar funktioen IsSpam med text som inparamter
// och kollar om den är sann, om så är fallet
// skickas besökaren vidare till du-spammade.asp

if isSpam(request.form("text")) = true then
Response.Redirect "du-spammade.asp"
end if
%>
Hoppas du förstod något så när, annars får du hojta.

(Och till eventuella kritiker, så nej jag har ingen som helst aning om det här är speciellt resurskrävande eller inte. Finns säkerligen betydligt bättre lösningar, men jag gissar att den räcker för ändamålet och fungerar helt okay)
Yepp är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-08-02, 13:19 #13
_Niclas_ _Niclas_ är inte uppkopplad
Medlem
 
Reg.datum: Jun 2007
Inlägg: 103
_Niclas_ _Niclas_ är inte uppkopplad
Medlem
 
Reg.datum: Jun 2007
Inlägg: 103
Tackar för det, jag ska testa det med. Nu har jag löst det med en fulingvariant som gör att det blir error om man skriver "http" i inläggen. Kanske inte den bästa lösningen men får hålla ett tag i alla fall.
_Niclas_ är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 03:59.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017