如何保护文件,以便只能通过java访问?

Kyl*_*yle 1 php java security .htaccess web

好的,我有一个文件夹说... http://oldserver.net/file/index.jar

如何保护文件"index.jar"不被从常规Web浏览器下载?

我之前已经看过这个,我只想保护它不被Web浏览器访问,并且严格保持Java下载访问权限.

我的意思是java下载访问只是,我可以简单地使用java下载器下载index.jar.但是我无法通过网络浏览器下载它.

我如何保护文件"index.jar"?

谢谢:)

And*_*yle 6

您需要考虑这个要求具体意味着什么 - 从您的服务器的角度来看,它如何判断传入的请求是否是"Java下载"?

简而言之,我认为没有办法确切地完成你所追求的目标.保护资源的经典方法是通过要求身份验证(即您需要有效的用户名和密码来获取index.jar文件),但这听起来并不像您想要的那样.

请记住,Java只是简单地向连接发送HTTP请求(或其他知道如何说话的协议). 任何其他程序都可以发送相同的请求,因此根本无法以您指定的方式强制执行此限制.

一种可能模拟你所追求的方法是不通过HTTP访问index.jar,因此默认情况下浏览器无法访问它,然后通过Java中的其他协议访问它(例如FTP,SFTP) , 随你).虽然如上所述,任何可以说这个新协议的工具都可以下载该文件.

另一种方法是查找特定于Java的标头,例如User-Agent字段(假设这个字段填充了可识别的内容).但同样 - 这不安全,因为任何工具都可以通过相同的标头发送并模拟java下载.


如果你的问题是你只希望你的文件被特定的 Java应用程序下载,那么事情会变得更加可行.您可以分发包含某些身份验证的应用程序(例如,公钥/私钥对),并在index.jar请求时为此服务器提出质询.但即便如此,这仍然是可疑的 - 根据定义,Java应用程序必须包含足够的信息来进行身份验证; 根据定义,您必须公开发布此信息; 因此,提取私钥并将其他应用程序伪装成Java密钥并不困难.


基本上,鉴于你所说的限制,我无法看到这个问题.如果有一个较窄的范围,你愿意接受你可能能够提出一个可行的妥协,但现在答案只是"不".