【问题标题】:Java File only seen and written to by programJava 文件只能由程序查看和写入
【发布时间】:2013-11-11 01:12:12
【问题描述】:

我正在为一个学校班级创建一个程序,该程序将访问 Twitter 并允许他们执行许多正常功能(发布、发送/接收消息、查看时间线......)。我正在使用twitter4j 实现这一点,以免客户端每次登录时都经过授权过程,我将他们的授权令牌保存到文件中。由于这是一个很大的安全风险,我想知道如何设置它,以便他们正在写入的文件只能由程序读取和写入。或者,如果有更好的方法来实现这个功能,我会全力以赴。

【问题讨论】:

  • 为什么不让他们访问 Twitter? :-)
  • 无论您如何存储令牌。它们可以被逆向工程。 :)
  • @Thihara - 把它做成桌面版本(还需要一个想法,我从来没有做过太多的 GUI 工作,听起来很有趣)
  • 将令牌保存在内存中,并在应用程序关闭时终止。他们可以在再次运行时重新进行身份验证...
  • @Thihara - 问题是他们必须去一个 URL 然后每次输入 pin 希望更多的“记住我/密码”的东西,或者是那些主要的原因由于文件加密而工作?

标签: java file-permissions


【解决方案1】:

将令牌存储在本地主机上的文件中后,任何可以访问笔记本电脑的人都可以检索该文件。

1/ 我们可以为文件设置 NTFS 权限,这样只有目标用户才能访问该文件。但是,在 Windows 中,无法将文件的访问权限限制为特定程序。 (当杀毒软件能够锁定病毒库时例外——如果你想这样做,你必须让你的程序在后台持续运行以保持对文件的锁定)

2/ 一种更简单的方法是加密令牌,以便它只能使用您的程序和已安装的机器正确解密。 例如:token = myEncryption(user's authen info, my encrypt key, localhost unique ID) 使用此方法,您可以保护令牌不被盗。如果有人窃取了文件,他们将无法在其他笔记本电脑上使用它,也无法与其他程序一起运行它。 无论如何,事实是:没有绝对安全的方法。 “所有钥匙都可以被打破”:)

干杯。

【讨论】:

  • "all key can be broken" 很遗憾,是的,我想虽然我应该尝试让它稍微难一点然后打开一个文件:),我很可能会走一个简单的加密路线,但感谢帮助!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-21
  • 1970-01-01
  • 1970-01-01
  • 2023-03-28
  • 2012-04-12
  • 2015-10-04
  • 2021-07-15
相关资源
最近更新 更多