Java response.sendRedirect从Chrome重定向到文件URL

Java response.sendRedirect从Chrome重定向到文件URL,java,http,google-chrome,servlets,redirect,Java,Http,Google Chrome,Servlets,Redirect,我有一个URL缩短器应用程序(类似于tinyurl.com、bit.ly等),可以重定向到file://URL 在内部,这是一个基于Servlet的web应用程序,我所做的就是从服务器端检索targetURL并执行response.sendRedirect(targetURL) 这也适用于文件://URL。然而,最近,这已经停止在Chrome上工作。当我尝试重定向到file://foo.txt(通过响应。sendRedirect()file://foo.txt“),事情就是失败了(Chrome调

我有一个URL缩短器应用程序(类似于tinyurl.com、bit.ly等),可以重定向到file://URL

在内部,这是一个基于Servlet的web应用程序,我所做的就是从服务器端检索
targetURL
并执行
response.sendRedirect(targetURL)

这也适用于
文件://
URL。然而,最近,这已经停止在Chrome上工作。当我尝试重定向到
file://foo.txt
(通过
响应。sendRedirect()file://foo.txt“)
,事情就是失败了(Chrome调试器显示“已取消”)


不过在FF和IE中一切正常。有什么线索吗?

我认为这是个坏主意,我很高兴至少chrome否认了这一点(尽管我怀疑其他浏览器也会这样)。如果你能指示其他浏览器打开任意文件,这将是一个相当大的安全漏洞

其次,你为什么要这样做?这需要用户在他们的计算机上的同一位置实际拥有相同的文件。这似乎是一个非常狭窄的用例。我用bit.ly测试了你的用例,如果你试图在那里添加一个
文件://
url,它被视为无效url,不能缩短

编辑:有一个很好的答案涵盖了同一个主题。它引用了这个有用的资源


您还指定这是一个内部应用程序。如果您试图进行某种文档共享,我建议您应该查看专用系统。另一个选项是使用“dropbox light”扩展您的服务,您的用户可以将有问题的文件上载到存储服务,您可以通过常规的http/https从存储中提供文件,然后生成一个简短的url。

我认为这是个坏主意,我很高兴chrome至少否认了这一点(尽管我怀疑其他浏览器也会这样做)。如果你可以指示其他人的浏览器打开任意文件,这将是一个相当大的安全漏洞

其次,你为什么要这样做?这需要用户在他们的计算机上的同一位置实际拥有相同的文件。这似乎是一个非常狭窄的用例。我用bit.ly测试了你的用例,如果你试图在那里添加一个
文件://
url,它被视为无效url,不能缩短

编辑:有一个很好的答案涵盖了同一个主题。它引用了这个有用的资源


您还指定这是一个内部应用程序。如果您试图进行某种文档共享,我建议您应该查看专用系统。另一个选项是使用“dropbox light”扩展您的服务,您的用户可以将有问题的文件上载到存储服务,并且您可以基于通过常规http/https从您的存储服务文件生成一个简短的url。

这是一个内部应用程序-该应用程序会检查有效的域名等。人们会缩短到以下文件的链接:file://foo/site/project/folder/file.doc 对我来说ike app/mydocStill,它将受到安全限制。我在谷歌搜索som时发现了更多信息,它引用了关于的有用资源。如果它在某些浏览器上工作,可能是因为这些浏览器中某些特定的放松安全配置。感谢NilsH-提供了有用的链接。令人困惑的是,事情仍然有点复杂在FF和IE上工作。只是不要在Chrome上。无论如何,再次感谢!这是一个内部应用程序-并且该应用程序会检查有效的域名等。人们会缩短到文件的链接,如file://foo/site/project/folder/file.doc 对于像app/mydocStill这样的东西,它将受到安全限制是关于的有用资源。如果它在某些浏览器上工作,可能是因为这些浏览器中的某些特定放松的安全配置。感谢NilsH-提供有用的链接。令人困惑的是,FF和IE上的工作仍然正常。只是不在Chrome上。无论如何,再次感谢!