Just nu i M3-nätverket
Jump to content

Spam i gästbok


zindy

Recommended Posts

Har två funderingar.

Problem1

Har liksom många andra problem med spam i min gästbok. Det konstiga är att jag har lagt in filter på massa ord som url, http och ord som anspelar på sex. Finns något av dessa ord med i meddelanderutan så kommer ett felmeddelande och inlägget sparas inte. Problemet är att spamrobotorna tar sig förbi detta på något konstigt vis. När jag sen kopierar deras inlägg för att själv testa att spara inlägget så får jag upp felmeddelande att inlägget inte går att spara. Precis samma text som roboten lyckades spara!?!

 

Problem2.

 

Hur kan robotorna lyckas spara nya inlägg långt tillbaka i tiden i databasen. Jag kan tex hitta nyinlagda spam som den har lyckats få in i aug och sept. ?!

 

Tacksam om det är någon som vet varför det blir så här..

 

 

 

 

Link to comment
Share on other sites

Var har du din kontroll av inlägget - i webläsaren innan det skickas eller på servern?

 

Om det är i websidan är det ju enkelt att komma förbi.

 

Om tidsstämpeln skickas med requesten till webservern kan ju den förfalskas.

 

Kontrollen måste alltså köras på webservern när man tagit emot formuläret. Tidsstämpeln ska också hämtas från servern.

 

Link to comment
Share on other sites

Kontrollen ligger i Asp-koden. Det är en funktion som kollar strängen i formuläret.

Hur menar du att man ska göra för att kontrollen ska köras på webservern?

 

 

Link to comment
Share on other sites

Tjena!

 

Möjlig lösning på problem 1:

Kan det vara så att boten lägger in texten som html ascii? Alltså att strängen "test" blir t.ex "test"

 

Eller om du kör en sql-databas så kanske boten kör lite sql-kod i ditt formulär, sql-injection, fast det låter ju ganska ambitiöst ^^

 

 

//kptzoom

 

 

[inlägget ändrat 2006-10-19 15:27:32 av KaptenZoom]

Link to comment
Share on other sites

Är inte hundra på vad som menas med klient side och server sida validering. Men jag gör flera koller på vad som skrivits i formuläret med request.form("namn på textrutan") och vad jag har försått så är det server side. Men hur sjutton lyckas dessa robotar då ta sig förbi detta?

 

Jättetacksam för svar

 

Link to comment
Share on other sites

"client side": Kontroll som utförs i webläsaren innan förfrågan skickas till servern.

 

"server side": Kontroll som görs på data som kommer in till servern.

 

Link to comment
Share on other sites

Men då har ju jag server side validering. Hur lyckas då robotorna slippa undan att exekvera den koden? Som jag skrev i första inlägget så kopierade jag exakt samma text som roboten lyckas lägga in i databasen och när jag försöker spara inlägget så spärrar kontrollen detta.

 

En förvirrad

 

Link to comment
Share on other sites

Vad är det för adress till hemsidan där du har gästboken? Så kan vi kolla vad du har för verifiering och hur spamrobotarna tar sig runt det. Enklare än att gissa...

 

 

Link to comment
Share on other sites

> hmmm, jobbigt och osäkert sätt,

 

Men roligt, tycker i alla fall jag.

 

 

> vore bättre att se serverkoden.

 

Naturligtvis, men det kan man ta sen.

 

 

Link to comment
Share on other sites

Men roligt, tycker i alla fall jag.

 

Hehe, alla har vi ju våra böjelser :)

 

Naturligtvis, men det kan man ta sen.

 

Jo så sant, kan ju vara skoj att försöka "knäcka" utan att veta facit först.

 

Link to comment
Share on other sites

Adressen till hemsidan är www.salasilverstaden.nu

Jag har nu även lagt till en funktion för captcha men de jäkla robotorna tar sig igenom ändå.

 

/maktlös

 

[inlägget ändrat 2006-10-23 10:49:35 av zindy]

Link to comment
Share on other sites

Jag har en koll på att allt som innnehåller tex url, http och a href inte ska godkännas men det slinker igenom ändå tyvärr.

Så - hur ser din kontroll av detta ut?

 

 

Link to comment
Share on other sites

Typ:

 

Klotter är meddelanderutan

 

dim strText : strText = request.Form("klotter")

 

if InStr(strText, "<a href") > 0 then

vidare ="false"

lankfel ="Meddelandet innehåller länk<br>"

elseif InStr(strText, "[url") > 0 then

vidare ="false"

lankfel ="Meddelandet innehåller länk<br>"

elseif InStr(strText, "porn") > 0 then

vidare ="false"

ordfel ="Meddelandet innehåller otillåtet ord<br>"

 

Plus en massa elseif till på andra ord

 

Sen kommer en koll på

If vidare ="false" Then

 

felmeddelande och meddelandet sparas inte.

 

Felkollen fungerar utmärkt när jag lägger in text med länkar eller otillåtna ord men spamroboten tar sig förbi.

 

 

 

 

 

Link to comment
Share on other sites

Jag ser då ingen kontroll för "http" där?

 

Om du jämför med "<a href" är det ju bara att skriva "<a href" istället så slinker man förbi :)

 

Link to comment
Share on other sites

Jag har tex dessa fast jag inte skrev ut dem

 

elseif InStr(strText, "http") > 0 then

lankfel ="Meddelandet innehåller otillåtet länk<br>"

vidare ="false"

elseif InStr(strText, "Http") > 0 then

lankfel ="Meddelandet innehåller otillåtet länk<br>"

vidare ="false"

 

Jag ser ingen skillnad på de "<a href" som du skriver, är det jag som är blind eller? :)

 

[inlägget ändrat 2006-10-25 14:30:41 av zindy]

[inlägget ändrat 2006-10-25 14:31:14 av zindy]

Link to comment
Share on other sites

hTtp, hTTP, ... :)

 

Du ska jämföra utan att ta hänsyn till stora eller små bokstäver.

 

Jag ser ingen skillnad på de "<a href" som du skriver, är det jag som är blind eller? :)

 

Hehe, inte jag heller :) Nå, den andra har två mellanslag mellan <a och href.

 

Link to comment
Share on other sites

Som lizardKng säger så måste du ju testa alla varianter av små och stora bokstäver om du gör på det där sättet. Bäst är att använda dig av en mönstermatchning med regular expressions så slipper du en herrans massa if-satser.

För att testa ett ord utan att behöva ta hänsyn till versaler/gemener använder du annars:

If InStr(LCase(strText), "http") > 0

 

Link to comment
Share on other sites

Har kollat runt på en massa sidor men får inget grepp om regular expressions. Vore ju kanon om jag kunde få hjälp men att skapa en funktion som kollade om "strText" innehåller en länk och då inte ska sparas.

 

Någon?

 

Ändrade även till If InStr(LCase(strText), "http") > 0 som ovanstående föreslog men tyvärr så hjälpte det ingenting.

 

 

[inlägget ändrat 2006-10-26 07:57:52 av zindy]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...