506 Stimmen

Scripter daran hindern, Ihre Website zu blockieren

Ich habe eine Antwort akzeptiert, aber ich glaube leider, dass wir bei unserem ursprünglichen Worst-Case-Szenario bleiben müssen: CAPTCHA jeder auf Kaufversuche der Mist . Kurze Erklärung: Caching/Webfarmen machen es unmöglich, Zugriffe zu verfolgen, und jede Umgehung (Senden eines nicht gecachten Web-Beacons, Schreiben in eine einheitliche Tabelle usw.) verlangsamt die Website stärker, als es die Bots tun würden. Es gibt wahrscheinlich teure Hardware von Cisco oder ähnlichem, die auf hohem Niveau helfen kann, aber es ist schwer, die Kosten zu rechtfertigen, wenn das CAPTCHA-Verfahren für alle eine Alternative ist. Ich werde später versuchen, eine ausführlichere Erklärung abzugeben und die Seite für künftige Suchende zu säubern (obwohl andere es gerne versuchen können, da es sich um ein Community-Wiki handelt).

Situation

Hier geht es um die Tüten-Mist-Verkäufe auf woot.com. Ich bin der Präsident von Woot Workshop, der Tochtergesellschaft von Woot, die das Design macht, die Produktbeschreibungen, Podcasts und Blogbeiträge schreibt und die Foren moderiert. Ich arbeite mit CSS/HTML und bin mit anderen Technologien nur wenig vertraut. Ich arbeite eng mit den Entwicklern zusammen und habe alle Antworten hier (und viele andere Ideen, die wir hatten) durchgesprochen.

Die Benutzerfreundlichkeit macht einen großen Teil meiner Arbeit aus, und die Website spannend und unterhaltsam zu gestalten, macht den größten Teil der Arbeit aus. Daraus leiten sich die drei folgenden Ziele ab. CAPTCHA schadet der Benutzerfreundlichkeit, und Bots stehlen den Spaß und die Spannung aus unseren Mistverkäufen.

Bots stürmen unsere Titelseite zig Mal pro Sekunde und scannen (und/oder scannen unser RSS) für den Random Crap Sale. In dem Moment, in dem sie das sehen, wird eine zweite Stufe des Programms ausgelöst, die sich anmeldet, auf "I want One" klickt, das Formular ausfüllt und den Mist kauft.

Bewertung

lc : Bei Stackoverflow und anderen Seiten, die diese Methode verwenden, handelt es sich fast immer um authentifizierte (angemeldete) Benutzer, weil die Aufgabe, die versucht wird, dies erfordert.

Auf Woot können anonyme (nicht angemeldete) Benutzer unsere Homepage sehen. Mit anderen Worten, die Slamming-Bots können nicht authentifiziert sein (und sind im Wesentlichen nicht verfolgbar, außer über die IP-Adresse).

Also müssen wir wieder nach IPs scannen, was a) im Zeitalter von Cloud-Networking und Spambot-Zombies ziemlich nutzlos ist und b) angesichts der Anzahl von Unternehmen, die von einer IP-Adresse ausgehen, zu viele Unschuldige erwischt (ganz zu schweigen von den Problemen mit nicht-statischen IP-ISPs und den potenziellen Leistungseinbußen bei dem Versuch, dies zu verfolgen).

Oh, und dass man uns anruft, wäre das schlimmstmögliche Szenario. Können wir sie Sie anrufen lassen?

BradC : Die Methoden von Ned Batchelder sehen ziemlich cool aus, aber sie sind eindeutig darauf ausgelegt, Bots zu besiegen, die für ein Netz von Websites entwickelt wurden. Unser Problem ist, dass die Bots speziell dafür entwickelt wurden, unsere Website zu überwinden. Einige dieser Methoden könnten wahrscheinlich für eine kurze Zeit funktionieren, bis die Skripter ihre Bots so weiterentwickelt haben, dass sie den Honeypot ignorieren, den Bildschirm nach nahegelegenen Labelnamen anstelle von Formular-IDs durchsuchen und eine javascriptfähige Browsersteuerung verwenden.

Nochmals lc : "Es sei denn, der Hype ist Teil Ihres Marketingkonzepts." Ja, das ist er definitiv. Die Überraschung, wenn der Artikel erscheint, sowie die Aufregung, wenn man es schafft, einen zu bekommen, ist wahrscheinlich genauso wichtig oder wichtiger als der Mist, den man am Ende tatsächlich bekommt. Alles, was das Prinzip "Wer zuerst kommt, mahlt zuerst" abschafft, schadet dem Nervenkitzel beim "Gewinnen" des Mistes.

novatrust : Und ich für meinen Teil begrüße unsere neuen Bot-Oberherren. Wir bieten tatsächlich RSS-Feeds an, damit Anwendungen von Drittanbietern unsere Website nach Produktinformationen durchsuchen können, aber nicht vor dem HTML-Code der Hauptseite. Wenn ich es richtig interpretiere, hilft Ihre Lösung Ziel 2 (Leistungsprobleme), indem sie Ziel 1 komplett opfert und sich mit der Tatsache abfindet, dass Bots den meisten Mist kaufen werden. Ich habe Ihre Antwort hochgestuft, weil ich Ihren Pessimismus im letzten Absatz für richtig halte. Es scheint hier kein Patentrezept zu geben.

Die übrigen Antworten stützen sich im Allgemeinen auf die IP-Verfolgung, die wiederum sowohl nutzlos (bei Botnetzen/Zombies/Cloud-Networking) als auch nachteilig zu sein scheint (es werden viele Unschuldige erwischt, die von denselben IP-Zielen kommen).

Gibt es andere Ansätze/Ideen? Meine Entwickler sagen immer wieder "lasst uns einfach CAPTCHA machen", aber ich hoffe, dass es weniger aufdringliche Methoden gibt, um alle tatsächlichen Menschen, die etwas von unserem Mist wollen.

Ursprüngliche Frage

Angenommen, Sie verkaufen etwas Billiges, das einen sehr hohen Wert hat, und Sie haben nur eine sehr begrenzte Menge. Niemand weiß genau, wann Sie diesen Artikel verkaufen werden. Und über eine Million Menschen kommen regelmäßig vorbei, um zu sehen, was Sie verkaufen.

Das führt dazu, dass Skripter und Bots programmgesteuert versuchen, [a] herauszufinden, wann du den besagten Gegenstand verkaufst, und [b] sicherzustellen, dass sie unter den ersten sind, die ihn kaufen. Das ist aus zwei Gründen ätzend:

  1. Ihre Website wird von nicht-menschlichen Nutzern überflutet und verlangsamt die Abläufe für alle.
  2. Am Ende "gewinnen" die Drehbuchautoren das Produkt, wodurch sich die Stammkunden betrogen fühlen.

Eine scheinbar offensichtliche Lösung ist es, einige Hürden zu schaffen, durch die Ihre Nutzer springen müssen, bevor sie ihre Bestellung aufgeben können, aber es gibt mindestens drei Probleme dabei:

  • Die Benutzererfahrung für Menschen ist miserabel, da sie CAPTCHA entziffern, die Katze herauspicken oder eine Matheaufgabe lösen müssen.
  • Wenn der wahrgenommene Nutzen hoch genug und die Menge groß genug ist, wird eine Gruppe einen Weg finden, jede Verbesserung zu umgehen, was zu einem Wettrüsten führt. (Dies gilt umso mehr, je einfacher die Änderung ist; ein verstecktes "Kommentar"-Formular, die Neuanordnung der Formularelemente, eine falsche Beschriftung, ein versteckter "Fauxpas"-Text - all dies funktioniert einmal und muss dann geändert werden, um dieses spezielle Formular zu bekämpfen).
  • Selbst wenn die Skripter Ihren Tweak nicht "lösen" können, hindert sie das nicht daran, Ihre Titelseite zuzuschlagen und dann einen Alarm auszulösen, damit der Skripter den Auftrag manuell ausfüllen kann. Da sie durch die Lösung von [a] im Vorteil sind, werden sie wahrscheinlich trotzdem [b] gewinnen, da sie die ersten Menschen sein werden, die die Bestellseite erreichen. Außerdem tritt 1. immer noch auf, was zu Serverfehlern und einer verminderten Leistung für alle führt.

Eine andere Lösung besteht darin, auf IPs zu achten, die zu oft auftauchen, sie in der Firewall zu blockieren oder sie anderweitig an der Bestellung zu hindern. Dies könnte 2. lösen und [b] verhindern, aber der Leistungseinbruch durch das Scannen nach IPs ist massiv und würde wahrscheinlich mehr Probleme wie 1. verursachen, als die Skripter selbst verursachen. Außerdem macht die Möglichkeit von Cloud-Netzwerken und Spambot-Zombies die IP-Prüfung ziemlich nutzlos.

Eine dritte Idee, nämlich das Laden des Bestellformulars für eine gewisse Zeit (z.B. eine halbe Sekunde) zu erzwingen, würde möglicherweise den Fortschritt der schnellen Bestellungen verlangsamen, aber auch hier wären die Skripter immer noch die ersten, und das bei einer Geschwindigkeit, die für die tatsächlichen Benutzer nicht nachteilig ist.

Ziele

  1. Verkaufen Sie den Gegenstand an Menschen, die keine Skripte schreiben.
  2. Sorgen Sie dafür, dass die Website mit einer Geschwindigkeit läuft, die nicht durch Bots gebremst wird.
  3. Belästigen Sie die "normalen" Benutzer nicht mit Aufgaben, die sie erfüllen müssen, um zu beweisen, dass sie Menschen sind.

246voto

lc. Punkte 109470

Wie wäre es, etwas zu implementieren, was SO mit den CAPTCHAs macht?

Wenn Sie die Website normal nutzen, werden Sie wahrscheinlich nie eine sehen. Wenn Sie zu oft dieselbe Seite neu laden, zu schnell aufeinanderfolgende Kommentare posten oder etwas anderes, das einen Alarm auslöst, müssen sie beweisen, dass sie Menschen sind. In Ihrem Fall wäre das wahrscheinlich das ständige Neuladen derselben Seite, das schnelle Verfolgen jedes Links auf einer Seite oder das zu schnelle Ausfüllen eines Bestellformulars, um menschlich zu sein.

Wenn sie die Prüfung x-mal hintereinander nicht bestehen (sagen wir 2 oder 3), geben Sie dieser IP eine Auszeit oder eine andere Maßnahme. Nach Ablauf dieser Zeitspanne wird die Prüfung erneut durchgeführt.


Da unregistrierte Benutzer auf die Website zugreifen, haben Sie nur IPs, die Sie verwenden können. Wenn Sie möchten, können Sie jedem Browser eine Sitzung zuweisen und auf diese Weise nachverfolgen. Und natürlich können Sie einen Human-Check einrichten, wenn zu viele Sitzungen hintereinander (neu) erstellt werden (falls ein Bot das Cookie immer wieder löscht).

Wenn Sie zu viele Unschuldige erwischen, können Sie auf der Seite mit den menschlichen Kontrollen einen Haftungsausschluss einfügen: "Diese Seite kann auch erscheinen, wenn zu viele anonyme Benutzer unsere Website vom gleichen Standort aus aufrufen. Wir empfehlen Ihnen, sich zu registrieren oder anzumelden, um dies zu vermeiden. (Passen Sie die Formulierung entsprechend an.)

Außerdem: Wie groß ist die Wahrscheinlichkeit, dass X Personen dieselbe(n) Seite(n) zur gleichen Zeit von einer IP-Adresse aus laden? Wenn sie hoch ist, brauchen Sie vielleicht einen anderen Auslösemechanismus für Ihren Bot-Alarm.


Edit: Eine andere Möglichkeit ist, wenn sie zu oft scheitern und Sie von der Nachfrage nach dem Produkt überzeugt sind, sie zu sperren und sie dazu zu bringen, Sie persönlich aufzufordern, die Sperre aufzuheben.

Es scheint eine unsinnige Maßnahme zu sein, die Leute anrufen zu lassen, aber sie stellt sicher, dass hinter dem Computer ein Mensch sitzt . Der Schlüssel ist, dass die Sperre nur für eine Bedingung gilt, die so gut wie nie eintreten sollte, es sei denn, es handelt sich um einen Bot (z. B. wenn er die Prüfung mehrmals hintereinander nicht besteht). Dann zwingt es den Menschen zur Interaktion - zum Abheben des Telefons.

Zu der Bemerkung, dass sie mich anrufen sollen, ist zu sagen, dass es hier offensichtlich einen Kompromiss gibt. Sind Sie so besorgt darüber, dass Ihre Benutzer menschlich sind, dass Sie ein paar Anrufe akzeptieren, wenn sie in den Verkauf gehen? Wenn ich so sehr darauf bedacht wäre, dass ein Produkt zu menschlichen Nutzern gelangt, müsste ich diese Entscheidung treffen und dabei vielleicht ein (kleines) Stück meiner Zeit opfern.

Da Sie offenbar entschlossen sind, Bots nicht die Oberhand über Ihre Website gewinnen zu lassen, halte ich das Telefon für eine gute Option. Da ich mit Ihrem Produkt keinen Gewinn mache, habe ich kein Interesse daran, solche Anrufe zu erhalten. Würden Sie jedoch einen Teil des Gewinns mit mir teilen, wäre ich vielleicht interessiert. Da es sich um Ihr Produkt handelt, müssen Sie entscheiden, wie viel Ihnen daran liegt, und es entsprechend umsetzen.


Die anderen Möglichkeiten, die Sperre aufzuheben, sind einfach nicht so effektiv: eine Zeitüberschreitung (aber danach können sie Ihre Website wieder zuschlagen, spülen und wiederholen), eine lange Zeitüberschreitung (wenn es sich wirklich um einen Menschen handelt, der versucht, Ihr Produkt zu kaufen, wäre er SOL und würde dafür bestraft, dass er die Prüfung nicht bestanden hat), E-Mail (kann leicht von Bots erledigt werden), Fax (dasselbe) oder Schneckenpost (dauert zu lange).

Sie könnten natürlich stattdessen die Timeout-Periode pro IP für jede Zeitüberschreitung erhöhen. Stellen Sie nur sicher, dass Sie nicht versehentlich echte Menschen bestrafen.

205voto

Christopher Mahan Punkte 7541

Sie müssen einen Weg finden, um die Bots dazu zu bringen, Dinge zu kaufen, die massiv überteuert sind: 12mm Flügelmutter: $20. Mal sehen, wie viele Bots das kaufen, bevor die Skriptschreiber merken, dass du sie übers Ohr haust.

Verwenden Sie die Gewinne, um mehr Server zu kaufen und für die Bandbreite zu bezahlen.

167voto

abelenky Punkte 60187

Meine Lösung wäre, Screen-Scraping wertlos zu machen, indem man eine Verzögerung von etwa 10 Minuten für Bots und Skripte einführt.

Ich würde es folgendermaßen machen:

  • Protokollieren und identifizieren Sie alle Wiederholungstäter.

Sie müssen nicht jede IP-Adresse bei jedem Treffer protokollieren. Verfolgen Sie nur einen von 20 Treffern oder so. Ein Wiederholungstäter wird immer noch bei einer zufälligen gelegentlichen Verfolgung auftauchen.

  • Bewahren Sie einen Cache Ihrer Seite von vor etwa 10 Minuten auf.

  • Wenn ein Wiederholungstäter/Bot Ihre Website aufruft, geben Sie ihm die 10 Minuten alte Seite aus dem Cache.

Sie werden nicht sofort erkennen, dass es sich um eine alte Website handelt. Sie werden in der Lage sein, sie zu kratzen und alles, aber sie werden keine Rennen mehr gewinnen, weil "echte Menschen" einen 10-minütigen Vorsprung haben werden.

Vorteile:

  • Keine Schwierigkeiten oder Probleme für die Nutzer (wie CAPTCHAs).
  • Vollständig auf der Server-Seite implementiert. (keine Abhängigkeit von Javascript/Flash)
  • Das Aufrufen einer älteren, im Cache gespeicherten Seite sollte weniger leistungsintensiv sein als eine aktuelle Seite. Auf diese Weise können Sie die Last auf Ihren Servern sogar verringern!

Beeinträchtigungen

  • Erfordert die Verfolgung einiger IP-Adressen
  • Erfordert die Führung und Pflege eines Caches für ältere Seiten.

Was meinen Sie dazu?

56voto

BradC Punkte 38356

Werfen Sie einen Blick auf Dieser Artikel von Ned Batchelder hier . In seinem Artikel geht es darum, Spambots zu stoppen, aber die gleichen Techniken können leicht auf Ihre Website angewendet werden.

Anstatt Bots zu stoppen, indem man Leute sich identifizieren müssen, können wir die Bots stoppen, indem wir es ihnen schwer machen einen erfolgreichen Beitrag zu erstellen, oder indem wir sie dazu bringen, sich ungewollt als sich als Bots identifizieren. Dies beseitigt die Last von den Menschen und lässt das Kommentarformular frei von sichtbaren Antispam Maßnahmen.

Mit dieser Technik verhindere ich Spambots auf dieser Website. Sie funktioniert. Die hier beschriebene Methode schaut nicht auf den Inhalt überhaupt nicht.

Einige andere Ideen:

  • Erstellen einer offiziell einen Mechanismus zur automatischen Benachrichtigung (RSS-Feed? Twitter?), den man abonnieren kann, wenn Ihr Produkt in den Verkauf geht. Dies reduziert die brauchen für Leute, die Drehbücher erstellen.
  • Ändern Sie Ihre Verschleierungstechnik kurz vor ein neuer Artikel wird zum Verkauf angeboten. Selbst wenn die Skripteure das Wettrüsten beschleunigen können, sind sie immer einen Tag im Rückstand.

EDIT: Um das klarzustellen, Ned's Artikel oben beschreibt Methoden, um den automatischen KAUF von Artikeln zu verhindern, indem ein BOT daran gehindert wird, die Formulare zu durchlaufen, um eine Bestellung aufzugeben. Seine Techniken wären nicht nützlich, um Bots daran zu hindern, die Homepage zu scannen, um festzustellen, wann ein Bandoleer of Carrots zum Verkauf steht. Ich bin mir nicht sicher, ob es wirklich möglich ist, DIES zu verhindern.

In Bezug auf Ihre Bemerkungen zur Wirksamkeit von Neds Strategien: Ja, er spricht über Honeypots, aber ich glaube nicht, dass das seine stärkste Strategie ist. Seine Diskussion über die SPINNER ist der eigentliche Grund, warum ich seinen Artikel erwähnt habe. Tut mir leid, dass ich das in meinem ursprünglichen Beitrag nicht deutlicher gemacht habe:

Der Spinner ist ein verborgenes Feld, das für ein paar Dinge: Es setzt eine Reihe von eine Anzahl von Werten, die Manipulationen und Wiederholungen zu verhindern, und wird verwendet Feldnamen zu verschleiern. Der Spinner ist ein MD5-Hash von:

  • Der Zeitstempel,
  • Die IP-Adresse des Clients,
  • Die Eintrags-ID des kommentierten Blogeintrags und
  • Ein Geheimnis.

Hier sehen Sie, wie Sie das bei WOOT.com umsetzen können:

Ändern Sie den "geheimen" Wert, der als Teil des Hashes jedes Mal verwendet wird, wenn ein neuer Artikel zum Verkauf angeboten wird. Dies bedeutet, dass, wenn jemand ein BOT zu entwerfen, um Auto-Kauf von Artikeln, es würde nur so lange funktionieren, bis der nächste Artikel in den Verkauf kommt !!

Selbst wenn jemand in der Lage ist, seinen Bot schnell neu zu bauen, werden alle anderen tatsächlichen Nutzer bereits ein BOC gekauft haben, und Ihr Problem ist gelöst!

Die andere Strategie, die er diskutiert, ist ändern die Honeypot-Technik von Zeit zu Zeit (auch hier sollten Sie sie ändern, wenn ein neuer Artikel in den Verkauf kommt):

  • Verwenden Sie CSS-Klassen (natürlich in zufälliger Reihenfolge), um die Felder oder ein enthaltendes Element auf display:none zu setzen.
  • Färben Sie die Felder in der gleichen (oder einer sehr ähnlichen) Farbe wie den Hintergrund der Seite.
  • Verwenden Sie die Positionierung, um ein Feld aus dem sichtbaren Bereich der Seite zu entfernen.
  • Machen Sie ein Element zu klein, um das enthaltene Honeypot-Feld anzuzeigen.
  • Lassen Sie die Felder sichtbar, aber verwenden Sie die Positionierung, um sie mit einem verdeckenden Element zu überdecken.
  • Verwenden Sie Javascript, um diese Änderungen vorzunehmen. Dazu muss der Bot über eine vollständige Javascript-Engine verfügen.
  • Lassen Sie die Honeypots wie die anderen Felder angezeigt, aber sagen Sie den Leuten, dass sie nichts in sie eingeben sollen.

Ich denke, meine allgemeine Idee ist es, das Design des Formulars zu ändern, wenn ein neuer Artikel in den Verkauf geht. Oder zumindest, ändern Sie es, wenn ein neues BOC in den Verkauf geht.

Und das ist was, ein paar Mal im Monat?

Wenn Sie diese Antwort akzeptieren, geben Sie mir dann Bescheid, wann die nächste fällig ist? :)

45voto

Steven A. Lowe Punkte 59247

F: Wie können Sie verhindern, dass Scripter Ihre Website Hunderte Male pro Sekunde zuschlagen?
A: Das ist nicht der Fall. Es gibt keine Möglichkeit verhindern. dieses Verhalten durch externe Akteure.

Man könnte eine Vielzahl von Technologien einsetzen, um eingehende Anfragen zu analysieren und heuristisch zu bestimmen, wer ein Mensch ist und wer nicht... aber es würde scheitern. Irgendwann, wenn nicht sofort.

Die einzig praktikable langfristige Lösung besteht darin das Spiel ändern so dass die Website nicht bot-freundlich ist oder weniger attraktiv für Skripter ist.

Wie macht man das? Nun, das ist eine andere Frage! ;-)

...

OK, einige Optionen wurden oben genannt (und verworfen). Ich bin mit Ihrer Website nicht sehr vertraut, da ich sie mir nur einmal angesehen habe, aber da Menschen Text in Bildern lesen können und Bots dies nicht ohne weiteres tun können, sollten Sie die Ankündigung in ein Bild ändern. Kein CAPTCHA , nur ein Bild -

  • das Bild zu erzeugen (natürlich im Cache), wenn die Seite angefordert wird
  • den Namen der Bildquelle beibehalten, um das Spiel nicht zu verraten
  • In den meisten Fällen wird das Bild einen normalen Text enthalten und so ausgerichtet sein, dass es als Teil der HTML-Seite erscheint.
  • Wenn das Spiel läuft, wechselt das Bild zum Ankündigungstext.
  • der Ankündigungstext enthält eine URL und/oder einen Code die manuell eingegeben werden müssen um den Preis zu erhalten. CAPTCHA den Code, wenn Sie mögen, aber das ist wahrscheinlich nicht notwendig.
  • Für zusätzliche Sicherheit kann der Code ein einmaliges Token sein, das speziell für die Anfrage/IP/den Agenten generiert wird, so dass wiederholte Anfragen unterschiedliche Codes erzeugen. Oder Sie können einen Haufen zufälliger Codes im Voraus generieren (ein One-Time-Pad), wenn die Generierung bei Bedarf zu anstrengend ist.

Führen Sie Zeittests mit echten Menschen durch, die darauf antworten, und ignorieren Sie ("Ups, ein Fehler ist aufgetreten, tut mir leid! Bitte versuchen Sie es erneut") Antworten, die schneller als (sagen wir) die Hälfte dieser Zeit sind. Dieses Ereignis sollte auch eine Warnung an die Entwickler auslösen, dass mindestens ein Bot den Code/das Spiel herausgefunden hat, so dass es an der Zeit ist, den Code/das Spiel zu ändern.

Ändern Sie das Spiel trotzdem regelmäßig, auch wenn keine Bots dies auslösen, nur um die Zeit der Skripter zu verschwenden. Irgendwann sollten die Skripter des Spiels überdrüssig werden und woanders hingehen...hoffen wir ;-)

Ein letzter Vorschlag: Wenn eine Anfrage für Ihre Hauptseite eingeht, in eine Warteschlange stellen und beantworten Sie die Anfragen der Reihe nach in einem separaten Prozess (möglicherweise müssen Sie den Webserver hacken/erweitern, um dies zu tun, aber es wird sich wahrscheinlich lohnen). Wenn eine weitere Anfrage von derselben IP/demselben Agenten eingeht, während sich die erste Anfrage in der Warteschlange befindet, ignorieren Sie diese. Dadurch sollte die Last der Bots automatisch entlastet werden.

EDIT: eine andere Möglichkeit, abgesehen von der Verwendung von Bildern, ist die Verwendung von Javascript, um den Kauf/Nicht-Kauf-Text auszufüllen; Bots interpretieren Javascript selten, so dass sie es nicht sehen würden

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X