2016-09-12 2 views
3

로그인 한 사용자 이름이 필요한 곳에서 자바로 데스크탑 응용 프로그램을 만들고 있습니다. 사용자 이름을 얻으려면 System.getProperty("user.name")을 사용하고 있습니다.System.getProperty ("user.name")가 스푸핑되는 것을 방지하는 방법

그러나이

-Duser.name=someothername 

에 의해

Properties p = System.getProperties(); 
    p.put("user.name", "XYZ"); 
    System.setProperties(p); 

또는를 사용하여 스푸핑 될 수는 어떻게이 스푸핑 또는 대체 안전한 방법으로 사용자 이름 로그인 얻을 방지 할 수 있습니다. 데스크톱 응용 프로그램은 플랫폼에 독립적입니다.

+0

사용자를 어떻게 인증합니까? authetication이 성공한 후에 만 ​​유효한 사용자임을 확신 할 수 있습니다. – jbin

+0

사용자 인증 메커니즘이 있습니다. 문제는 앱이 공유 컴퓨터에서 실행되며 로그인 한 사용자가 인증 된 사용자 일 수 있습니다. System.getProperty ("user.name")는 스푸핑 될 수 있으므로 잘못된 취급을 방지하고자합니다. –

답변

5

시스템 속성은 환경 변수가 아닙니다. 환경 변수는 System.getenv("USERNAME")을 사용하십시오. System.properties은 여전히 ​​사용자가 java 명령 행에서 java -Duser.name=someoneelse으로 설정할 수 있습니다.

관련 문제