WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Spambekämpning på forum - hur spärrar man ord? (https://www.wn.se/forum/showthread.php?t=30727)

_Niclas_ 2008-07-24 10:11

Del 438 i spambekämpning på sina forum.

Jag har lagt upp ett forum (Joakimweb) som jag justerat och anpassat bra för min sajt.
En asp-lösning där inläggen ramlar in i en access-databas och sen hämtas upp igen.

Men efter bara någon timme var de första ryska hälsningarna inne och sen dess kommer en det ena och en det andra.

Efter att kollat genom alla spam så ser jag att samtliga innehåller alltid "http" i sina inlägg, hur kluriga de än är med olika texter, och språk och tecken. Då slog det mig att man skulle kunna göra en spärr mot att kunna lägga inlägg som innehåller "http" (kanske och "href"). Visserligen är jag lite mot att spärra/censurera mina läsares möjligheter att skriva vad de vill, men å andra sidan finns det ju ett fält för att lägga in länk till sitt inlägg samt att man alltid kan ju skriva tex www.wn.se i textfältet.

Så nu är mina frågor, hur gör man ett sådant filter, är det ett javascript eller i asp-koden, eller något man ställer in i sin access-databas? Är det någon här som prövat på något liknande. Och finns det någon som kan tipsa om vart jag kan läsa på mer om hur jag gör en sådan lösning?

Tacksam för svar.

Westman 2008-07-24 10:24

Jag hade ändrat i ASP-koden så att inlägg med det ord jag vill spärra inte tillåts, det borde vara en ändring på ett ställe. Javaskript kan man gå runt men är kanske enklare att lägga in.

tartareandesire 2008-07-24 11:38

Det måste vara en kontroll på serversidan som Westman påpekar, absolute inte JS.

Slacker 2008-07-24 15:07

Installera ett phpbb-forum för då kan du använda bbantispam och bli helt kvitt alla spammare, även om forumet är öppet för gäster att posta.
http://www.bbantispam.com/

tartareandesire 2008-07-24 16:12

Citat:

Originally posted by Slacker@Jul 24 2008, 15:07
Installera ett phpbb-forum för då kan du använda bbantispam och bli helt kvitt alla spammare, även om forumet är öppet för gäster att posta.
http://www.bbantispam.com/

Har han en sida i asp så är phpbb kanske inte rätt val.

_Niclas_ 2008-07-24 18:56

Tackar för tipsen, har ni fler får ni gärna komma med dem.

Och visst har man funderat på ett phpbb-forum, men det hela har stannat vid att sajten är byggd med asp. Har inte kommit på något sätt att integrera det med.

_Niclas_ 2008-07-26 08:16

Funkade inte så bra, har kört fast. Är det någon som gjort en liknande lösning eller har något länktips om vart man kan få lite inspiration. Har googlat runt på det mesta.

Slacker 2008-07-26 09:42

Har sett denna om HoneyPot:

http://www.projecthoneypot.org/

tartareandesire 2008-07-26 11:29

Citat:

Originally posted by _Niclas_@Jul 26 2008, 08:16
Funkade inte så bra, har kört fast. Är det någon som gjort en liknande lösning eller har något länktips om vart man kan få lite inspiration. Har googlat runt på det mesta.

Vad testade du?

eg0master 2008-07-26 12:10

Eller testa at implementera det här: http://www.linksleeve.org/

Funkar ganska bra för mig. Dvs man frågar den sajten om den tycker att något är spam eller inte. Idén är att spamare ofta skickar samma sak till flera sajter på kort tid. Då upptäcker denna centrala tjänst att så är fallet så bara de stackarna som attackeras först får ett godkänt svar medan den stora massan slipper spam.

tartareandesire 2008-07-27 14:32

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.

Yepp 2008-07-28 21:53

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)

_Niclas_ 2008-08-02 13:19

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.


Alla tider är GMT +2. Klockan är nu 00:46.

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