Seid gewarnt: Das anonyme Internet ist voller Spam.
Spam ist ja nix neues – allerdings wusste ich bislang nicht, dass selbst völlig eigen geschrieben Applikationen innerhalb kürzester Zeit heimgesucht werden können.
Ich bastel in meiner Freizeit an einer Website Namens KnowYourStack. Diese war eine ganze Zeit lang online und in der Zwischenzeit bin ich umgezogen und hatte wenig Zeit für die Weiterentwicklung & (vor allem) für die Wartung.
Fail early – fail often
Ganz nach diesem Motto hab ich in meiner jugendlichen Leichtsinnigkeit die Website online geschalten. Ich wollte zudem mal ausprobieren wie sich ein anonymer Zugang bewährt – Idee: Keine Registrierung – keine großen Hemmschwellen etwas auf der Seite zu machen.
Resultat: Spam.
Es hat nicht lang gedauert und irgendwelche Bots haben die Seite regelmäßig zubombardiert mit Spam (auch wenn das zweite spanisch (?) aussieht – naja.) :
Da das System komplett auf meinen eigenen Mist Code gewachsen ist, war ich doch verwundert dass das Spamaufkommen so hoch ist (am Tag ca. 4-5 seltsame Einträge)
Bruteforce FTW
Da ich nicht davon ausgehe, dass die Bots speziell auf meine Seite angepasst wurden, nehm ich einfach folgendes an:
Spam Bots grasen das Internet ab und sobald ihnen ein Formular in die Hände kommt wird es ausgefüllt und abgeschickt. Wer keine Sicherungsmechanismen wie z.B. eine Rechenaufgabe oder ein Captcha eingebaut hat wird zur Werbetafel der Spam Industrie. Interessanterweise hatte ich das Gefühl, dass je mehr Spam auf der Seite war, desto mehr wurde es auch. Einen gewissen Respekt hab ich schon vor den kleinen Teufeln, die sowas entwickeln.
Lessons learned: Auch selbst gebaute Apps sind Spammagneten
Ohne einen Schutz, wie z.B. ein Captcha oder gar eine kleine Rechenaufgabe oder sonstige Logik macht man es den Spam Bots zu leicht.
Lessons learned: Anonym nur moderiert
Anonyme Beiträge können ihren Wert haben – allerdings sollte man es vorher moderieren.
Lessons learned: Mini-Administrations-Funktionen sollten eingebaut sein
Ganz am Anfang hatte ich mir noch gar keinen Kopf gemacht und als die ersten Spam Einträge kamen, musste ich die über das RavenDB Management Studio entfernen. Das geht – ist allerdings nicht gerade schnell. Daher meine Empfehlung: Im gewissen Rahmen sollte man schon von Anfang an Administrationsfunktionen einbauen – auch ein nicht-anonymer Nutzer kann unpassenden Content breitstreuen.
PS: Ich hab mal die Handbremse gezogen. KnowYourStack Reimagined

Fix: “Hyper-V cannot be installed: Virtualization support is disabled in the firmware.”
Wer eine Windows 8 Pro (oder Enterprise) Edition sein eigen nennt kann ein ziemlich cooles Feature nutzen: Hyper-V. Microsoft Virtualisierungsplattform direkt in einem Client OS integriert. Die Installation ist Kinderleicht – einfach das Windows Feature anschalten: What? “Virtualization support is disabled in the firmware”? Erster Gedanke: Verdammt – unterstützt das der Prozessor/das Board/irgendein magischer Schaltkreis …
HowTo: Rahmenlose WPF Apps mit Schattenwurf
Die Standard-Fenster von Windows verschwinden immer mehr und werden ersetzt durch schicker anmutende Bedienelemente. Diesmal meine ich allerdings keine “Metro” Apps, sondern normale, full-power Windows Applikationen. Achtung: Der Blogpost ist sehr “Low-Level”. Es gibt bestimmt einige Libraries oder NuGet Packages, die diese Sachen mitbringen. Die herangehensweise hat auch 2 Nachteile! Aus dem Drögen Standard (für …
Welchen Befehl verwendet Visual Studio für WebDeploy? Der “UseMsdeployExe” Switch…
WebDeploy finde ich ein großartiges Tool um WebApplikationen zu publishen bzw Packages zu bauen, allerdings kann es manchmal schwer sein den Vorgang zu debuggen. Link zum Setup WebDeploy: Wer Probleme beim Aufsetzen von WebDeploy hat, der kann auf diesen Post mal ein Blick werfen. Publishing aus dem Visual Studio klappt, aber über die Cmd nicht? …
Setup IIS 8 für ASP.NET & WebDeploy auf Windows 8 und Windows Server 2012
Eine Maschine für ASP.NET (oder generell den Web-Stack von Microsoft) und Web Deploy vorzubereiten ist nicht wirklich schwierig. Wer die Server-Variante einsetzt kann das ganze sogar via Powershell erledigen – dazu einfach bis fast ans Ende des Posts scrollen. Kurz-Information: Was ist Web Deploy? Web Deploy (früher auch MSDeploy genannt) ist eine Deployment-Art welche cleverer …
Team Foundation Service – ein erster Blick auf den TFS in der Cloud
Willkommen im 100% Microsoft-approved Developer Tooling: Seit letzte Woche sind die Team Foundation Services in den RTM Status gegangen – d.h. man kann und darf damit produktiv arbeiten, allerdings gibt es noch keine absoluten Angaben zum Preis. Nur soviel ist jetzt bekannt (ohne Gewähr) : – Teams bis zu 5 Mann können kostenlos die Team …
OWIN Präsentation auf der WebNetConf
Mitte Oktober war ich in Mailand auf der WebNetConf mit einem Vortrag über OWIN vertreten. Viele von euch denken jetzt: Was zur Hölle ist OWIN? Und genau darum ging es auch in dem Talk Grundzüge lassen sich auch in diesem Post nachlesen: OWIN- um was geht es da und warum ist es cool? Präsentation: Anmerkungen: …
Einheiten und Schnittstellen
Aufgrund der Objektorientierung beschreibt man als Entwickler seine zu bearbeitenden Daten in Objekte. Logisch. Das sieht dann so aus: public List<Product> GetProducts() Doch was ist mit grundlegenden Einheiten? Für das Datum gibts im Framework ja das DateTime Objekt, aber was ist mit all den anderen Einheiten: Liter, Meter, Gigabyte usw. ? Die einfachste Antwort der …
Web Deploy per WebPI installiert und IIS Management Service nicht vorhanden?
Um den IIS “Web Deploy”-ready zu machen hatte ich bereits ein Setup-Blogpost geschieben. Im Grunde besteht das System aus zwei Teilen: – den Agent für das Deployment- den Management Service, welcher sich auch um den Remote-Zugriff kümmert Heute wollte ich einen IIS “Web Deploy”-ready machen, allerdings fehlte der “Manage Service” Button in der UI. Problem …
Twitter Login in ASP.NET MVC 4 ohne Membership & co. nutzen
Ich hatte bereits vor einiger Zeit über die Authentifizierung mit Twitter gebloggt. Mit ASP.NET MVC 4 kommen das DotNetOpenAuth NuGet Packages mit, welches die reine Authentifzieren deutlich vereinfachen. ASP.NET MVC 4 – Membership & co. Wer eine ganz normale MVC 4 WebApp erstellen möchte findet danach direkt einen “AccountController” und mehrere Klassen in der “AccountModels.cs”. …






Letzte Kommentare