2011-11-29 3 views
0

사용자가 다른 사용자에게 메시지를 보낼 수있는 웹 응용 프로그램을 구축 중입니다. 메시지 전송 페이지에는 현재 URL에 수신자의 사용자 ID가 있으므로 애플리케이션은 메시지를 보낼 곳 (예 : example.com/send-message/user-id/1)을 알고 있습니다. 사용자 ID는 데이터베이스의 수신자를 식별하는 데 사용되는 기본 키입니다.웹 응용 프로그램에서 해시 된 사용자 ID를 사용하여 스패머 차단

저는 스패머가이 페이지로 이동할 수 있으며 URL의 사용자 ID를 계속 변경하고 사이트의 스팸 사용자를 매우 빠르게 변경할 수 있다고 우려하고 있습니다.

내가 생각해 낸 해결책은 긴 고유 ID (123154123412)를 만드는 것입니다. 이 번호는 사용자 데이터베이스 행에 저장되며 스팸 발송자가 ID를 변경하여 많은 사람을 쉽게 스팸으로 보낼 수 없도록 보내기 메시지 페이지의 기본 키 대신 사용됩니다.

내가 본 것처럼이 접근법에 잠재적 인 문제점이 있습니까?

사이트 전체에서 고유 ID를 사용하면 사이트 속도가 크게 느려집니다. 즉, 생성 된 고유 ID보다 기본 키를 사용하여 데이터베이스를 검색하는 것이 더 빠릅니다.

감사

답변

1

당신이 할 수있는 또 다른 것은 그들이 짧은 시간에 너무 많은 메시지를 보낼 때 일시적으로 세션이나 IP 주소를 차단하는 것입니다 (예. 메시지와 최대 5 메시지 15 분 당 사이에 1 분).

-1

사람들이 웹 사이트에서 다른 회원에게 메시지를 보낼 수 있도록 허용하는 것은 일반적으로 나쁜 생각입니다. (그것이 내가 생각하는 사이트의 요점이 아니라면). 자동 스팸 봇을 방지 할 수는 있지만 실제 인간에게 지불하고 기꺼이 수동으로 메시지를 보내려는 사람들이 많이 있습니다. 무엇보다도 먼저 로그인 한 회원 만 친구에게 메시지를 보내고받는 등의 방식으로 회원을 "수락"한 다른 사람에게 메시지를 보낼 수 있도록 허용해야합니다.

긴 UID로, 데이터베이스를 올바르게 설정했다면 성능을 "발생"시킬 수 있지만 기본 키 ID 대신 사용하면 사이트 속도가 느려지지는 않습니다.

0

이 방법은 전혀 쓸모가 없습니다.

사이트 사용자가 다른 사용자에게 메시지를 보낼 수있는 한 스팸 발송자는 사용자가 작성한 ID를 사용합니다.

유일한 방법은 시간당받는 사람 수 및/또는 메시지 수를 제한하는 것입니다.