문제

첫 번째 ASP.NET 프로젝트로 게시판을 작성했습니다. 지금까지 잘 작동하는 것 같습니다. 그러나 내가 가진 기능 중 하나는 각 메시지에 스팸 등급이 있다는 것입니다. 시청자가 스팸을 메시지가 보는 총 횟수로 나눈 값으로 시청자가 메시지를 표시 한 횟수입니다. 아이디어는 사용자가 스팸 등급이 높은 메시지를 무시할 수 있도록하는 것입니다.

그러나 전체 시스템은 단순히 자신의 메시지를보고 여러 번 새로 고쳐서 스패머에 의해 장애를 일으킬 수 있습니다. 또한 메시지를 스팸으로 한 번 연속으로 표시하는 사람에 의해 포장 될 수 있습니다. 특정 방문자가 이미 특정 메시지를 보았는지 여부와 특정 사용자가 이미 특정 메시지를 스팸으로 표시했는지 여부를 결정하는 방법이 필요합니다.

등록이 필요하지 않습니다. 누구나 메시지를 보거나 게시 할 수 있기를 바랍니다. 내가 고려한 두 가지 아이디어는 방문자가 사이트에 도착할 때 쿠키를 설정하여 추적하거나 사용자가 메시지를 보거나 스팸으로 표시 할 때 사용자의 IP 주소를 기록하는 새 데이터 테이블을 작성하는 것입니다. 다른 사람이 더 나은 방법을 생각할 수 있습니까? .NET은 방문자가 처음으로 페이지를보고 있는지 확인하는 데 도움이되는 내장 기능이 있습니까?

도움이 되었습니까?

해결책

가장 신뢰할 수있는 측정은 스패머가 자신의 프로그램을 작성하여 페이지를 요청하여 다른 방법을 우회 할 수 있으므로 IP 주소 필터링입니다. NAT의 고객에게 영향을 미치지 만 스팸 필터링 목적으로는 잘 작동합니다.

다른 팁

ASP.NET에는 내장 된 기능이 있습니다 Personalization 이는 일반 "등록 된"사용자와 함께 익명 사용자를 감지하고 기억하는 데 사용될 수 있습니다.

익명의 사용자는 IP를 사용합니다. 이것은 특히 일부 인터넷 제공 업체에게 잘못된 긍정적 인 입장을 줄 것이지만, 시나리오에 적합한 트레이드 오프처럼 보입니다. 또한 사용자가 식별되도록 간단하게 만들었습니다. Open ID는이 작업을 수행하는 좋은 방법입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top