2016-09-12 5 views
3

Я создаю настольное приложение в java, где мне нужно имя пользователя для входа. Я использую System.getProperty("user.name"), чтобы получить имя пользователя.Как предотвратить зависание System.getProperty ("user.name")

Но это может быть подделан с помощью

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

или по

-Duser.name=someothername 

Как я могу предотвратить это подмена или какая-то альтернатива, чтобы войти в систему пользователя в безопасном режиме. Настольное приложение не зависит от платформы.

+0

Как вы проверяете подлинность пользователя? Вы можете только быть уверены, что его действительный пользователь после авторизации был успешным. – jbin

+0

Существует механизм аутентификации пользователя. Проблема заключается в том, что приложение будет работать на общей машине, и может возникнуть ситуация, когда пользователи, которые вошли в систему, являются аутентифицированными пользователями. так как System.getProperty («user.name») можно подделать, мы хотим предотвратить любое неправильное обращение. –

ответ

5

Свойства системы не являются переменными среды. Используйте переменную окружения System.getenv("USERNAME"). System.properties все еще может быть установлен пользователем в командной строке java с java -Duser.name=someoneelse.

Смежные вопросы