Java:如何检测真实,不可靠的用户语言和用户国家?

mst*_*rap 4 java locale

对于我们的Java应用程序,我们正在考虑为我们遇到大量许可证侵权的某些国家/地区强化我们的许可条件和相关代码.因此,我们希望找出真实的用户语言和用户所在国家/地区.我知道,你可以查询系统属性user.languageuser.country,但开始使用例如Java应用程序时,这些很容易被伪造-Duser.language=en.有没有办法检测这些属性的原始未更改值?或者是否有其他API为我们提供真正的设置?

注意:

  • 解决方案应该只需要很少的计算工作量并且不需要Internet连接

  • 我们不是在寻找一个非常安全的解决方案,但它也不应该太容易伪造(比如系统属性).

Ser*_*sta 7

想都别想.您正试图在技术层面解决法律问题.我曾经使用过Linux机器,其中不同的用户具有不同的声明语言和时区,并且仍然使用"C"语言和UTC时区的VM.

根据我的经验,这样的控制可能会惹恼那些碰巧使用非标准配置的好心的用户,但不能阻止某人故意提供错误的信息.

所以我的建议是:

  • 使用system属性获取声明的国家/地区
  • 要求用户确认或更改它
  • 信任用户声明的内容

它可以节省您的热线电话数量.