2012-01-23 2 views
-1

나는 갇혀있어, 도와 줘!카운트받는 방법. 각 사용자/컴퓨터에 고유 한 파일을 다운로드하는 중 ...

나는 FILE 테이블 가지고

: 는 BIGINT, FILE_NAME VARCHAR, 파일 BLOB을 FILE_ID을 ... 등

나는 내가 식별 할 수 있도록 사용자/컴퓨터 당 각 파일의 다운로드의 어떤을 계산하고 싶지 각 파일의 총 수 및 또한 단일 사용자가 여러 번 파일을 다운로드하는 상황을 피하기 위해,

난 그냥 지금까지 내가 다음과 같은 생각을 가지고 구현할 수있는 최선의 방법을 알고 싶다 방법 :

1) 테이블 FILE_DOWNLOAD_COUNT (FILE_ID, UNIQUE_ID)만들기2) 파일을 다운로드 할 때마다 다운로드 한 파일의 ID와 모든 다운로드 요청에 해당하는 고유 한 값으로이 테이블에 새 레코드를 삽입하십시오.

하지만 UNIQUE_ID를 (를) 식별하는 데 사용해야하는 항목은 무엇입니까?

IP 주소/MAC 주소/A 쿠키 값

문제 :

IP 주소 : 모든 새로운 접속시, 새로운 IP 주소를 할당 (DYNAMIC IP)

MAC 주소 : 변경할 수 있으며 MAC 스푸핑을 사용할 수 있습니다.

쿠키 값 : 삭제할 수 있습니다.

그래서 가장 안정적인 방법으로 어떻게 이것을 할 수 있습니까?

는 참고 : 나는

답변

1

먼저 JAVA (STRUTS2 + 봄) + MYSQL에서 사전에

감사를 실시하고있어, 귀하의 질문에 대한 몇 가지주의 사항 :

MAC 주소는하지 않는 한, 아마 무관 로컬 네트워크에 파일을 제공하고 있습니다. 그렇지 않으면 의미가 없습니다.

IP 주소 : 사용자가 프록시를 사용하는 경우 동일한 IP 주소를 사용하여 서버에 액세스하는 경우 차단해야한다고 생각해야합니다.


답변 :

내 생각에 가장 좋은 방법은 로컬 계정 또는 openid/googleid/다른 사람과 하나, 사용자를 인증 한 다음 FILE_DOWNLOAD_COUNT 테이블에 사용자 ID를 저장하는 사용하는 것입니다.

계정을 사용할 수없는 경우 두 가지 경우 (IP 및 쿠키)를 모두 관리해야하며 두 가지 검사를 우회하는 사용자의 수가 상대적으로 적을 것으로 예상됩니다.

또한 자동 다운로드를 방지하기 위해 captcha을 추가하는 것을 잊지 마십시오.

link도 관심의 대상이 될 수 있습니다. 사용자가 broswer가 새로운 콘텐츠가 있는지 웹 서버에 물어볼 것입니다. 게재중인 페이지가 최신 상태입니다. 그리고이 값을 사용하여 일종의 추가 확인 메커니즘을 만들거나 다른 메커니즘의 무게를 늘리거나 줄입니다.

+0

귀중한 의견을 보내 주셔서 감사합니다. 문제가있는 경우 되돌려 주겠습니다. – Godfather

+0

@Godfather,이 답변이 유용하고 의심 사항을 정리 한 경우 답변으로 표시하십시오. 아직 받아 들여지지 않은 질문을 표시하지 않았으므로 [여기] (http://stackoverflow.com/faq#howtoask)를 참조하십시오. 기본적으로 답 득표 아래의 눈금을 클릭하면 초록색/수락됩니다. –

관련 문제