2009-05-08 2 views
1

자바 웹 응용 프로그램의 날짜 기반 라이센스 메커니즘에 대한 논리를 생각해 내려고합니다. 앱은 인터넷에 액세스 할 수없는 클라이언트 사이트 (인트라넷에 배포 됨)에 배포해야합니다. 이 경우 어떻게 시작일/종료일을 기준으로 라이센스 메커니즘을 구축해야합니까? 서버 시스템 날짜/시간을 사용하면 시스템 관리자가 서버 날짜/시간을 변경하여 해당 위치를 활성 상태로 유지할 위험이 있습니다. 제안 사항이 있으십니까? Windows dektop 응용 프로그램은 이것을 수행하는 것으로 보입니다. 확실하지 않습니다.Java 웹 응용 프로그램의 날짜 기반 라이센스 논리?

산 제이.

+1

"시스템 관리자가 서버의 날짜/시간을 변경하여 해당 위치를 계속 유지할 위험이 있습니다." 또한 라이센스가 종료되고 소프트웨어가 작동을 멈 추면 영원히 고객을 잃을 위험이 있습니다. 더 나쁜 것은 누군가가 라이센스 스키마가 너무 복잡하여 날짜를 변경하거나 (또는 ​​관리자가 작성한 모든 문제) 누군가를 갱신하지 않는 것입니까? –

+0

고객의 혼란을 피하려면 앱을 계속 실행하고 라이센스가 만료 된 경우 고급 기능을 제거하십시오. 그리고 당신이 그들에게 다시 갈 수있는 쉬운 방법이 있는지 확인하십시오. – joeytwiddle

답변

0

가능한 솔루션 :

당신은 정기적으로 고객에게 키와 확인 키 클래스의 일치 쌍을 발행 할 수 있습니다. 서버 응용 프로그램은 검증 클래스를 사용하여 시작시 최소한으로 확인하거나 정기적으로 JVM 시간을 사용하여 확인해야합니다.

또한 고객에게 키/확인 프로그램 업데이트를 갱신하는 간단한 방법을 제공해야합니다.

결국 자바 클래스 파일을 검사하고 조작 할 수 있지만 호스트 메커니즘에 의존하지 않는 일시적인 라이센스 체계를 제공한다는 점에서 이는 여전히 완벽한 증명 메커니즘이 아닙니다.

0

앱이 마지막으로 실행 된 시간을 기록하여 시스템 날짜의 변경 사항을 감지합니다. 시작된 후 나중에 마지막으로 실행 된 것으로 밝혀지면 파울을 의심 할 수 있습니다!

물론 lastRunDate 번호가 저장된 위치를 사용자가 찾을 수 있으면 주변을 둘러 볼 수 있습니다. 편집 : 또한 사용자가 정말로 자신의 컴퓨터의 날짜를 잘못 인식하여 변경하면 잘못 트리거 될 수 있습니다. 표준시를 사용하지 않는 경우 일광 절약 시간제 변경 사항을 잊지 마십시오 (유효한 날짜 변경에 대해 1 ~ 2 시간의 유연성 제공).

1

흠, 내가 생각하는 규칙은 다음과 같습니다. (a) 라이센스는 시작일과 종료일을 기반으로해야합니다. (b) 컴퓨터가 외부 세계에 연결되어 있다고 가정 할 수 없다면 문제가 이론적으로 해결할 수 있다고 생각하지 않습니다. 날짜의 유일한 출처는 시스템 날짜 또는 사용자가 입력 한 다른 날짜 중 일부 날짜입니다. 어쩌면 내가 뭔가를 놓친 것일 수도 있지만, 날짜에 관해 거짓말하는 사용자에게 적용될 수없는 방법을 모르겠다. 내 말은, 컴퓨터가 외부 세계에 연결되어 있지 않다면 정의에 따라 날짜를 확인할 외부 소스가 없다는 것입니다. Joeytwiddle이 제안한 날짜에 대해 합리적인 점검을하고 이전에 기록한 날짜를 기록하고 의심스러운 항목을 찾으십시오. 예를 들어 날짜가 뒤로 이동하거나 지난 6000 회 실행 중 같은 날이 될 수도 있습니다. 그 외에도 이것은 원을 제곱하거나 정직한 정치인을 찾는 데 문제가되는 것 같습니다. 단지 완료 할 수 없습니다.