java - 如何防止 System.getProperty ("user.name") 被欺骗

标签 java java-security

我正在用 java 构建一个桌面应用程序,我需要登录的用户名。 我正在使用 System.getProperty("user.name") 获取用户名。

但这可以通过使用

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

或通过

-Duser.name=someothername

我怎样才能防止这种欺骗或任何替代方法以安全的方式登录用户名。 桌面应用程序独立于平台。

最佳答案

系统属性不是环境变量。使用 System.getenv("USERNAME") 作为环境变量。 System.properties 仍然可以由用户在 java 命令行上使用 java -Duser.name=someoneelse 进行设置。

关于java - 如何防止 System.getProperty ("user.name") 被欺骗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39444860/

相关文章:

java - 为什么这个 gif 没有动画?

java - 如何使用Java列表作为Hql插入的值?

java - volatile 关键字和内存一致性错误

java - 使用 keytool 找不到 SunPKCS11 提供程序

java - @RunAs javax 安全注解有什么用?

ssl - 启用 TLSv1.2 和 TLS_RSA_WITH_AES_256_CBC_SHA256 密码套件

java - 如何在服务器端和客户端在java中使用TLS_PSK

java - 验证 CSS 选择器的正则表达式

java - 由于 TLS 不兼容,SOAP Web 服务不接受请求

java - 在 viewpager 中复制时,textview 会复制下一个或上一个文本