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?
Antwort
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.
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 –
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
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
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
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.
- 1. Wie stelle ich sicher, dass Anfragen von meiner Website stammen?
- 2. Apache: Blockieren schlecht Bots und Website rippers
- 3. Wie kann ich die Website blockieren?
- 4. Wie stelle ich sicher, dass Monit beim Systemstart gestartet wird?
- 5. Wie kann ich verhindern, dass Bots mit Ausnahme von Crawlern auf meine Site zugreifen?
- 6. Wie stelle ich sicher, dass re.findall() an der richtigen Stelle stoppt?
- 7. QNetworkAccessManager: Wie stelle ich sicher, dass der Download abgeschlossen ist?
- 8. Wie stelle ich sicher, dass Whitespace in Markdown erhalten bleibt?
- 9. Wie stelle ich sicher, dass Tomcat6 CATALINA_OPTS unter Windows liest?
- 10. Wie stelle ich sicher, dass der Anruf asynchron ist?
- 11. Wie kann ich verhindern, dass Bots meine AJAX-basierten URLs kriechen?
- 12. Wie blockiere ich schlechte nicht identifizierte Bots, die meine Website crawlen?
- 13. Wie stelle ich sicher, dass meine Ansicht nach Vollbildvideo korrekt ausgerichtet ist?
- 14. Wie stelle ich sicher, dass meine Controller- und Modellspezifikationen mit rspec und rails übereinstimmen?
- 15. Wie stelle ich sicher, dass meine Android-App auf allen Android-Handys gleich aussieht?
- 16. In Java, Wie stelle ich sicher, dass meine Webanwendung threadsicher ist?
- 17. Wie stelle ich sicher, dass nur Regionen-Monitoring-fähige Geräte meine App im Store sehen können?
- 18. Wie stelle ich sicher, dass mein Git Repo Code sicher ist?
- 19. Wie kann ich meine Website sichern?
- 20. Wie kann ich meine Website skalierbar machen?
- 21. Wie kann ich meine Website mit ie6
- 22. Wie kann ich eine Website in WebView blockieren
- 23. Wie kann ich meine fertige Website bereitstellen?
- 24. Verwenden von Angular 2. Ich habe meine tsconfig.json aktualisiert, wie stelle ich tatsächlich sicher, dass die Einstellungen zutreffen?
- 25. Wie kann ich feststellen, wie viele Benutzer meine Website besuchen?
- 26. Wie blockiere ich Web Scraping, ohne zu blockieren Gut benommene Bots?
- 27. htaccess blockieren jeden IP/Besucher und Bots außer Google Bot
- 28. Wie stelle ich pyinstaller meine Datenbank ein?
- 29. Wie blockieren Sie unsere Website in Pakistan?
- 30. Wie veröffentliche ich meine Website?
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
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
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