웹 페이지에서 기본보기 추적을 수행하는 가장 좋은 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/410785

  •  03-07-2019
  •  | 
  •  

문제

웹에 직면하고 익명으로 액세스 할 수있는 블로그 디렉토리 및 블로그가 있으며 각 블로그 게시물이 수신하는 조회수 수를 추적하고 싶습니다.

나는 이것을 가능한 한 간단하게 유지하고 싶다. 정확도는 근사치 일 뿐이다. 이것은 분석을위한 것이 아니며 (Google이 있습니다)이 환경에서 배경 작업을 실행하는 것처럼 통계를 꺼내기 위해 로그 분석을 수행하고 싶지 않으며 가능한 한 신선한 숫자가되기를 원합니다.

내 현재 솔루션은 다음과 같습니다.

  1. 단순히 각각의 표에 테이블에보기를 기록하는 웹 컨트롤.
  2. REGEX 및 UserAgent String을 사용하여 알려진 웹 크롤러 목록 제외
  3. 특정 IP 주소 (알려진 스패머)의 제외를 제공합니다.
  4. 일부 게시물을 잠글 수 있습니다 (스패머가 올 때)

이것은 실제로 꽤 좋은 일을하는 것처럼 보이지만 몇 가지가 나를 괴롭 힙니다. 스패머는 여전히 일부 게시물에 닿아 뷰를 왜곡시킵니다. 여전히 "나쁜"IP 주소 목록을 업데이트하는 뷰를 수동으로 모니터링해야합니다.

누구든지 나에게 더 나은 제안이 있습니까? StackoverFlow 질문에 대한보기가 어떻게 추적되는지 아는 사람이 있습니까?

도움이 되었습니까?

해결책

현재 솔루션이 실제로 좋은 것 같습니다.

View Content를 전달한 서버 코드도 URL (URL이 시간이 지남에 따라 변경 될 수 있으므로 URL의 특수 ID 코드)과보기 수를 저장 한 데이터베이스 테이블을 업데이트 한 서버 코드를 구현했습니다.

이것은 실제로 다른 사람들이 댓글을 달 수있는 사용자가 작성한 게시물이있는 시스템에 대한 것이었지만 게시물을 작성하는 유일한 사용자 인 상황에 동일하게 적용됩니다 (설명을 올바르게 이해하는 경우).

불행히도 (불행히도 제거하지 않음) 왜곡을 최소화하기 위해 다음을 수행해야했습니다.

  • 로그인 한 사용자의 경우 각 사용자는 게시물에 하나의 뷰 포인트 만 추가 할 수 있습니다. 항상. 예외 없음.
  • 익명의 사용자의 경우 각 IP 주소는 매달 게시물에 한 개의 뷰 포인트 만 추가 할 수 있습니다. IP 주소가 우리의 관점에서 '공유'(NAT 등) 될 수 있기 때문에 이것은 약간 신뢰할 수 없었습니다. 우리가 위의 "영원한"요구 사항을 완화 한 이유는이 공유 이유 때문입니다.
  • 게시물 자체는 시간당 하나의 관점을 추가하는 것으로 제한되었습니다 (기간이 낮아지기 시작하여 10 초 동안 시작하여 5 분까지 점차적으로 증가하여 새로운 게시물이 참신함으로 인해 뷰를 더 빨리 발생시킬 수있었습니다. ). 이것은 대부분의 스팸 봇을 처리했습니다. 왜냐하면 우리는 게시물이 만들어진 후 오랫동안 공격하는 경향이 있기 때문입니다.
  • 포스트에서 스팸 주석을 제거하거나 보안 문자를 우회하려는 시도 (아래 참조)는 해당 IP를 블랙리스트에 자동으로 추가하고 해당 게시물의 뷰 수를 줄였습니다.
  • 블랙리스트 IP가 N 일 (구성 가능)에 주석을 남기려고하지 않은 경우 블랙리스트에서 제거되었습니다. 이 규칙과 이전 규칙은 블랙리스트를 유지 관리하는 수동 개입을 최소화했으며 스팸 콘텐츠에 대한 응답 만 모니터링해야했습니다.
  • CARTCHA. 이것은 해결되었습니다 많은 우리의 스팸 문제 중에서, 특히 우리는 OCR 유형의 물건에 의존하지 않았기 때문에 ( "이 단어는 무엇입니까 -> '선택적으로') 실제로 질문을했습니다. 멍청한 캐릭터 인식 봇. 저렴한 노동 담낭 브레이커의 무리를 이길 수는 없습니다 (수학이 정말 나쁘지 않다면 :-) 그러나 No-Captcha의 개선은 인상적이었습니다.
  • 로그인 한 사용자는 보안 문자의 적용을받지 않았지만 Spam은 계정을 즉시 삭제하고 IP 블랙리스트에 올랐으며 뷰에서 게시물에서 차감되었습니다.
  • 우리가 실제로 웹 크롤러를 할인하지 않았다는 것을 인정하는 것이 부끄럽습니다 (고객이 이것을 읽지 않기를 바랍니다 :-). 솔직히 말해서, 그들은 IP 주소 규칙으로 인해 매월 최소 수의 뷰 포인트를 추가하고있을 것입니다 (여러 IP 주소로 우리를 모으는 한).

기본적으로 가능한 개선을 제안합니다. 물론, 그들이 일하고 있는지 아닌지 항상 모니터링해야합니다.

  • CARTCHA.
  • 사용자 동작에 따라 자동 블랙리스트 업데이트.
  • 제한보기 수는 동일한 IP 주소에서 증가합니다.
  • 제한보기 수는 특정 속도로 증가합니다.

당신이 선택한 계획은 완벽하지는 않지만 (예 : 1 개월 규칙) 모든 게시물이 동일한 규칙 세트를 따르는 한 여전히 좋은 비교 가치를 얻습니다. 당신이 말했듯이, 정확도는 근사치 일뿐입니다.

다른 팁

제안 :

  1. hit count logic을 사용자 컨트롤에서 기본 페이지 클래스로 이동하십시오.
  2. 동적으로 업데이트 할 수 있도록 제외 목록을 재 설계합니다 (즉, 데이터베이스 또는 XML 파일에 저장)
  3. 모든 히트를 기록하십시오. 규칙적인 간격으로 Cron 작업이 새로운 히트 곡을 통해 실행되고 포함되어 있는지 또는 제외되는지 여부를 결정하십시오. 각 히트마다 제외되면 각 사용자는 일치하는 논리가 발생할 때까지 기다려야합니다.
  4. 스패머/봇을 자동으로 감지하여 블랙리스트에 추가하기 위해 알고리즘을 제시하십시오. 및/또는 타사 블랙리스트를 구독합니다.
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top