2010-07-24 14 views
6

Ich möchte sicherstellen, dass meine Website Automatisierungswerkzeuge wie Selenium und QTP blockiert. Gibt es eine Möglichkeit, das zu tun? Welche Einstellungen auf einer Website sind mit Selenium verbunden?Wie stelle ich sicher, dass meine Website Automatisierungsskripte, Bots blockieren kann?

+9

Warum würden Sie das tun? Da Automatisierungstools die Benutzer nachahmen, ist es am besten, den Webserver zu trennen, Beton darauf zu legen und dann wegzulaufen. Aber vielleicht hast du einen guten Grund. – Scharron

+2

mehr eine Frage für Serverfault - wenn Sie eine gute Firewall haben - begrenzen Sie die Anzahl der TCP-Verbindungen pro Sekunde (oder X-Zeit) pro IP oder Benutzer. könnte auch ein Apache Plug-in sein. – EdH

+0

Ich stimme @Scharron zu - was versuchst du zu erreichen? Wenn du Selenium/QTP irgendwie blockierst, was hält man dann davon ab, mit einem anderen Tool zu versuchen oder mit 'curl',' wget' oder Apache 'HttpClient' zu schreiben? – pdbartlett

Antwort

3

Mit gebührender Berücksichtigung der Kommentare zu der ursprünglichen Frage "Warum in aller Welt würdest du das tun?" Müssen Sie grundsätzlich die gleiche Strategie verfolgen wie jeder Standort, um zu verifizieren, dass ein Benutzer tatsächlich ein Mensch ist. Methoden wie das Bitten von Benutzern um Authentifizierung oder die Eingabe von Text aus Bildern oder Ähnlichem funktionieren wahrscheinlich, aber dies hat wahrscheinlich den Effekt, Google Crawler und alles andere zu blockieren.

Alles zu tun, was auf User-Agent-Strings oder ähnlichem basiert, ist meistens nutzlos. Das ist trivial zu fälschen.

Ratenbegrenzende Verbindungen oder ähnliches sind möglicherweise nur begrenzt effektiv, aber es scheint, als würden Sie unbeabsichtigt auch Web-Crawler blockieren.

+1

Ich stimme @Gian zu, der beste Weg, jemanden daran zu hindern, Benutzerinteraktionen mit Ihrer Website zu automatisieren, ist die Einführung eines Captchas. http://en.wikipedia.org/wiki/CAPTCHA –

+1

Machen Sie es mit REcaptcha (http://en.wikipedia.org/wiki/ReCAPTCHA) zum nächsten Level. Dann verhindern Sie automatisierte Interaktion und helfen gleichzeitig, alte Bücher und Zeitungen zu digitalisieren! – Zugwalt

+0

Ich denke nicht, CAPTCHA ist die beste Lösung, weil sie sehr billig zu brechen sind. Jemand, der automatisierte Skripte ausführt, kann diese einfach umgehen. Wenn Sie nicht möchten, dass jemand automatisierte Skripte auf Ihrer Website ausführt, ist die Lösung, keine Website an erster Stelle zu haben. – KJW

3

Während diese Fragen scheint seltsam zu sein, es lustig ist, so habe ich versucht, Möglichkeiten Neben dem Hinzufügen eines CAPTCHA

zu untersuchen, die die beste und die einzige ultimative Lösung ist, Sie Selen indem Sie den folgenden JavaScript blockieren können, um Ihre Seiten (in diesem Beispiel auf die Google-Seite wird umgeleitet, aber Sie können, was Sie wollen tun):

<script> 
var loc = window.parent.location.toString(); 
if (loc.indexOf("RemoteRunner.html")!=-1) { 
    // It is run in Selenium RC, so do something 
    document.location="http://www.google.com"; 
} 
</script> 

ich weiß nicht, wie Sie andere Automatisierungs-Tools blockieren können, und ich bin nicht sicher, ob dies nicht Selenium IDE blockiert

0

um 100% sicher zu sein, dass keine automatisierten Bots/Scripts gegen Ihre Websites laufen können, keine Online-Website haben. Dies wird Ihrer Anforderung mit Sicherheit entsprechen.

CAPTCHA sind dank Crowdsourcing und OCR-Methoden leicht zu brechen, wenn auch nicht billig.

Proxies können frei in freier Wildbahn gefunden werden oder sind zu extrem niedrigen Kosten erhältlich. Auch hier ist es nutzlos, Verbindungsraten zu begrenzen oder Bots zu erkennen.

Ein möglicher Ansatz kann in Ihrer Anwendungslogik sein, implementieren Sie Möglichkeiten, um Zeit und Kosten für den Zugriff auf die Website durch Dinge wie Telefonverifizierung, Kreditkartenverifizierung zu erhöhen. Ihre Website wird nie starten, weil niemand Ihrer Website in den Kinderschuhen vertrauen wird.

Lösung: Stellen Sie Ihre Website nicht online und erwarten Sie, Bots und Skripts effektiv zu deaktivieren.