답변을 수락했지만 안타깝게도 우리는 최악의 원래 시나리오 인 CAPTCHA 모두가 쓰레기를 구매하려고 시도 하고 있다고 생각 합니다 . 간단한 설명 : 캐싱 / 웹 팜을 사용하면 적중을 추적 할 수 없으며 캐시되지 않은 웹 표지를 보내거나 통합 된 테이블에 쓰는 등의 해결 방법으로 인해 봇보다 사이트 속도가 느려집니다. 높은 수준에서 도움을 줄 수있는 시스코 등의 고가의 하드웨어가있을 수 있지만, 보안 담당자가 모두 대안이라면 비용을 정당화하기는 어렵습니다. 나중에 더 자세한 설명을 시도하고 향후 검색자를 위해이를 정리할 것입니다 (커뮤니티 위키이므로 다른 사람들도 시도해 볼 수 있지만).
상태
이것은 woot.com의 가방 쓰레기 판매에 관한 것입니다. 저는 디자인을 수행하고 제품 설명, 팟 캐스트, 블로그 게시물을 작성하고 포럼을 운영하는 Woot의 자회사 인 Woot Workshop의 사장입니다. CSS / HTML로 작업하고 다른 기술에 대해서는 거의 익숙하지 않습니다. 나는 개발자들과 긴밀히 협력하여 여기에있는 모든 답변 (및 우리가 가진 많은 다른 아이디어)을 통해 이야기했습니다.
유용성은 내 직업의 큰 부분이며 사이트를 흥미롭고 재미있게 만드는 것이 나머지 부분입니다. 바로 아래 세 가지 목표가 도출 된 것입니다. 보안 문자는 사용성에 해를 끼치며 봇은 쓰레기 판매에서 즐거움과 흥분을 훔칩니다.
봇은 랜덤 크랩 판매를 위해 두 번째 화면 스크래핑 (및 RSS 스캔)을 앞 페이지 수십 번 밟고 있습니다. 그들이 보는 순간, 그것은 로그인하고, 내가 원하는 것을 클릭하고, 양식을 작성하고, 쓰레기를 사는 프로그램의 두 번째 단계를 촉발시킵니다.
평가
lc :이 방법을 사용하는 스택 오버플로 및 기타 사이트에서는 인증 된 (로그인 된) 사용자를 거의 항상 처리합니다.
Woot에서 익명 (로그되지 않은) 사용자는 우리 홈페이지를 볼 수 있습니다. 다시 말해, 슬래 밍 봇은 인증되지 않을 수 있습니다 (IP 주소를 제외하고 본질적으로 추적 할 수 없음).
따라서 우리는 IP 검색을 다시 시작합니다 .a)이 시대의 클라우드 네트워킹 및 스팸봇 좀비에서는 상당히 쓸모가 없습니다. 비 정적 IP ISP 및이를 추적하려는 잠재적 인 성능 저하).
아, 사람들이 우리를 불러주는 것이 최악의 시나리오 일 것입니다. 전화 할 수 있습니까?
BradC : Ned Batchelder의 방법은 매우 멋지지만 사이트 네트워크를 위해 구축 된 봇을 물리 치기 위해 매우 견고하게 설계되었습니다. 우리의 문제는 봇이 사이트를 무 찌르기 위해 특별히 만들어 졌다는 것입니다. 이러한 방법 중 일부는 스크립터가 허니팟을 무시하고 양식 ID 대신 근처 레이블 이름을 스크린 스크랩하고 자바 스크립트 가능 브라우저 컨트롤을 사용하도록 봇을 발전시킬 때까지 짧은 시간 동안 작동했을 수 있습니다.
lc 다시 : "물론, 과대 광고는 마케팅 계획의 일부가 아닙니다." 그렇습니다. 아이템이 나타날 때의 놀라움과 아이템을 얻는 데 대한 흥분은 실제로 얻는 쓰레기보다 훨씬 중요합니다. 선착순을 제거하는 것은 쓰레기를 '승리'하는 스릴에 해 롭습니다.
노바 트러스트 : 저는 새로운 봇 대 군주를 환영합니다. 당사는 실제로 타사 앱이 사이트에서 제품 정보를 검색 할 수 있도록 RSSfeed를 제공하지만 기본 사이트 HTML보다 앞서 있지는 않습니다. 내가 올바르게 해석하면 솔루션 1은 목표 1을 완전히 희생하고 봇이 대부분의 쓰레기를 구입할 것이라는 사실을 사임함으로써 목표 2 (성능 문제)를 돕습니다. 마지막 단락 비관이 나에게 정확하다고 느끼기 때문에 귀하의 답변을 투표했습니다. 여기에는 총알이없는 것 같습니다.
응답의 나머지 부분은 일반적으로 IP 추적에 의존하며, 다시는 쓸모없고 (봇넷 / 좀비 / 클라우드 네트워킹 사용) 해로운 것 (동일한 IP 대상에서 온 많은 무고한 사람들을 잡는 것)으로 보입니다.
다른 접근법 / 아이디어가 있습니까? 저의 개발자들은 계속해서 "보안 문자 만하자"고 말하지만 실제 인간이 우리 쓰레기를 원하는 데 방해가되지 않는 방법이 있기를 바랍니다.
원래 질문
인지도가 매우 높고 금액이 매우 저렴한 상품을 판매한다고 가정 해 보겠습니다. 이 상품을 언제 판매 할 것인지 정확히 아는 사람은 없습니다. 그리고 당신이 팔고있는 것을보기 위해 백만 명이 넘는 사람들이 정기적으로 방문합니다.
프로그래밍 방식으로 [a] 해당 항목을 판매 할시기를 파악하고 [b] 처음 구매 한 사람인지 확인하려는 스크립터 및 봇이 있습니다. 이것은 두 가지 이유로 짜증납니다.
- 귀하의 사이트는 사람이 아닌 사람으로 인해 다운되어 모든 사람이 모든 것을 느리게합니다.
- 스크립터는 결국 제품을 '승리'하여 일반인이 속이는 느낌을 갖습니다.
겉보기 명백한 해결책은 사용자가 주문하기 전에 뛰어 넘을 수있는 후프를 만드는 것이지만 적어도 3 가지 문제가 있습니다.
- 사용자 경험은 사람들이 보안 문자를 해독하거나 고양이를 골라 내거나 수학 문제를 해결해야하기 때문에 짜증납니다.
- 인식 된 이익이 충분히 높고 군중이 충분히 크면 일부 그룹은 조정을 통해 무기 경쟁으로 이어질 것입니다. (이것은 조정이 더 단순 할 때 특히 그렇습니다. 숨겨진 '설명'양식, 양식 요소 재 배열, 잘못 레이블 지정, 숨겨진 'gotcha'텍스트는 모두 한 번 작동 하며이 특정 양식을 타겟팅하기 위해 변경되어야합니다. .)
- 스크립터가 조정을 '해결'할 수 없어도 스크립트가 첫 페이지를 때리는 것을 막지 못하고 스크립터가 수동으로 주문을 작성하는 경보를 울리지 않습니다. 그들이 [a]를 해결함으로써 이점을 얻는다면, 그들은 주문 페이지에 도달 한 최초의 인간이기 때문에 여전히 [b]를 이길 것입니다. 또한 1. 여전히 발생하여 서버 오류가 발생하고 모든 사람의 성능이 저하됩니다.
또 다른 해결책은 IP가 너무 자주 치는 것을 감시하거나 방화벽에서 차단하거나 주문하지 못하게하는 것입니다. 이것은 2를 해결하고 [b]를 막을 수 있지만 IP 검색으로 인한 성능 저하는 방대하며 스크립터가 자체적으로 발생시킨 것보다 1.와 같은 더 많은 문제를 일으킬 수 있습니다. 또한 클라우드 네트워킹 및 스팸봇 좀비의 가능성으로 인해 IP 검사가 상당히 쓸모 없게됩니다.
주문 양식을 일정 시간 (예 : 0.5 초) 동안 강제로로드하는 세 번째 아이디어는 빠른 주문의 진행 속도를 잠재적으로 느리게 할 수 있지만, 다시 한 번 스크립터는 실제 사용자.
목표
- 비 스크립팅 사람에게 상품을 판매하십시오.
- 봇에 의해 느려지지 않는 속도로 사이트를 운영하십시오.
- '일반적인'사용자가 사람임을 증명하기 위해 완료해야 할 작업을 번거롭게하지 마십시오.