【问题标题】:Selective direct download protecting选择性直接下载保护
【发布时间】:2014-02-28 17:40:54
【问题描述】:

我想限制在我的网站上直接下载文件(比如 www.me.com/asd.txt) 但允许我在 www.me.com/javaapplet.jar 中的 java 小程序能够下载它。 有一个简单的方法吗? 我不确定它是否相关,但服务器正在运行 Apache 2.2.24

期待您的帮助, 斯博达

【问题讨论】:

  • 你有没有尝试过任何你想与我们分享的东西?
  • 可能让某人难以直接下载它,但不可能阻止有决心的用户完成任务。您可以在小程序中发送加密文件并对其进行解密,但小程序必须包含解密密钥并且可以进行逆向工程。
  • 是的,因为逆向工程我不敢这样做(尤其是在我看到 JD-GUI 的能力之后),我很好奇它是否可能只允许小程序下载文件。 @Mad physicist 不,我什么都没试过,因为在这种情况下用 rewriterules 重写 .htacces 是行不通的……
  • 如果小程序可以下载,只要有人用 Wireshark 观察流量就可以得到隐藏的 URL。这个问题一直被问到,答案总是一样的:你不能。

标签: java


【解决方案1】:

执行此操作的一种安全方法是要求对要下载文件的小程序进行客户端证书身份验证。这里是an example that uses the Apache HTTP Client.

您还需要创建一个自签名客户端证书,通过其他渠道(例如需要登录的网页)提供给“有效”用户,并且您需要告知 HTTP 服务器自签名证书。如果您使用的是 Tomcat,这是一种设置自签名客户端证书的方法:Tomcat Server/Client Self-Signed SSL Certificate。当然,其他 HTTP 服务器会有不同的过程。

将浏览器证书与 java 插件一起使用时会出现一些问题,这将要求您的用户做一些工作来导出浏览器证书以与 Java 插件一起使用。见http://download.java.net/jdk7/archive/b126/docs/technotes/guides/deployment/deployment-guide/upgrade-guide/article-16.html

【讨论】:

  • 谢谢,但我希望这是一种可以完全排除用户交互的方式!我想无论如何我都会尝试一下你的建议。
【解决方案2】:

使用私钥。仅当私钥随请求一起传递时,才能下载该文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多