Chciałbym się upewnić, że moja witryna blokuje narzędzia do automatyzacji, takie jak Selenium i QTP. Czy jest jakiś sposób na zrobienie tego? Jakie ustawienia na stronie internetowej wiążą się z selenem?Jak upewnić się, że moja witryna może blokować skrypty automatyzacji, boty?
Odpowiedz
Z należytym uwzględnieniem uwag na oryginalne pytanie z pytaniem "dlaczego, u licha, zrobiłbyś to?", Musisz zasadniczo przestrzegać tej samej strategii, którą używa każda strona, aby zweryfikować, że użytkownik jest rzeczywiście człowiekiem. Metody takie jak żądanie od użytkowników uwierzytelnienia lub wprowadzenia tekstu z obrazów lub podobnych elementów prawdopodobnie będą działać, ale prawdopodobnie spowoduje to blokowanie robotów indeksujących google i wszystko inne.
Cokolwiek na podstawie ciągów agenta użytkownika lub czegoś podobnego jest w większości przypadków bezużyteczne. Te są banalne do sfałszowania.
Ograniczające ograniczenia połączenia lub podobne mogą mieć ograniczoną skuteczność, ale wygląda na to, że zamierzacie niechcący zablokować dowolne roboty sieciowe.
Zgadzam się z @Gian najlepszym sposobem, aby uniemożliwić komuś interakcję użytkownika z witryną, jest wprowadzenie czegoś takiego jak captcha. http://pl.wikipedia.org/wiki/CAPTCHA –
Przejdź do następnego poziomu, używając REcaptcha (http://en.wikipedia.org/wiki/ReCAPTCHA). W ten sposób zapobiegasz automatycznej interakcji, jednocześnie pomagając w digitalizacji starych książek i gazet! – Zugwalt
Nie sądzę, że CAPTCHA jest najlepszym rozwiązaniem, ponieważ są one bardzo tanie do zerwania. Ktoś, kto uruchomi zautomatyzowane skrypty, może z łatwością go ominąć. Jeśli nie chcesz, aby ktokolwiek korzystał z automatycznych skryptów w twojej witrynie, rozwiązaniem jest, aby nie mieć strony internetowej. – KJW
Podczas tego pytania wydaje się być dziwne, to jest zabawne, więc starałem się zbadać możliwości
Oprócz dodawania CAPTCHA, który jest najlepszym i jedynym najlepszym rozwiązaniem, możesz zablokować selen, dodając następujący JavaScript do listy stron (w tym przykładzie będzie przekierowanie na stronę Google, ale można zrobić cokolwiek chcesz):
<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>
nie wiem, jak można blokować inne narzędzia do automatyzacji i nie jestem pewien, czy to nie będzie blokować Selenium IDE
jest w 100% pewny, że żadne automatyczne boty ani skrypty nie mogą być uruchamiane na twoich stronach internetowych, nie ma strony internetowej. To spełni twoje wymagania z pewnością.
CAPTCHA są łatwe do rozbicia, jeśli nie tanie, dzięki crowdsourcingu i metodom OCR.
Proksy mogą być znalezione na wolności za darmo lub luzem są dostępne w bardzo niskich cenach. Ponownie, bezużyteczne, aby ograniczyć szybkość połączenia lub wykryć boty.
Jednym z możliwych podejść może być logika aplikacji, wdrażaj sposoby wydłużenia czasu i obniżenia kosztów dostępu do witryny poprzez weryfikację telefoniczną, weryfikację karty kredytowej. Twoja strona nigdy się nie rozwali, ponieważ nikt nie będzie ufał Twojej witrynie w jej początkach.
Rozwiązanie: Nie umieszczaj swojej strony internetowej w Internecie i nie oczekuj skutecznego usuwania botów i skryptów.
Dlaczego miałbyś to robić? Ponieważ narzędzia do automatyzacji są tworzone w celu naśladowania użytkowników, najlepszym sposobem ich blokowania jest odłączenie serwera internetowego, wylanie na niego betonu, a następnie ucieczka. Ale może masz dobry powód. – Scharron
więcej pytań na serverfault - jeśli masz dobrą zaporę ogniową - ogranicz ilość połączeń TCP na sekundę (lub czas X) na adres IP lub użytkownika. może być również wtyczką Apache. – EdH
Zgadzam się z @Scharron - co próbujesz osiągnąć? Jeśli w jakiś sposób zablokujesz Selenium/QTP, co powstrzyma ludzi przed próbami użycia innego narzędzia lub zapisaniem ich własnymi słowami 'curl',' wget' lub Apache 'HttpClient'? – pdbartlett