2010-07-24 14 views
6

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?

+9

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

+2

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

+0

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

Odpowiedz

3

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.

+1

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 –

+1

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

+0

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

3

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

0

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.