2013-04-01 30 views
1

我有一个URL缩短应用(类似于tinyurl.com,bit.ly等),它也重定向到file:// URL。response.send重定向到Chrome的文件URL

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

这对于file://网址也适用。不过,最近,这已停止在Chrome上工作。当我尝试通过response.sendRedirect('file://foo.txt')重定向到file://foo.txt(,事情根本无法(在Chrome调试器说“取消”)。

事情在FF和IE浏览器工作正常不过。任何线索?

回答

1

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

第二,你为什么要这样做?它需要用户在他们的计算机上的相同位置上实际上拥有这个相同的文件,看起来像一个相当狭窄的用例。 r使用bit.ly的情况下,它尝试在那里添加一个file:///网址,它被视为无效的URL并且不能被缩短。

编辑:有一个非常好的答案涵盖同一主题here。它引用这个有用的资源约security restrictions with redirection

您还指定这是用于内部应用程序。如果你试图做某种文件共享,我会说你应该为此专门研究一下这个系统。另一种选择是通过“Dropbox light”扩展您的服务,用户可以将相关文件上传到存储服务,并且可以通过常规http/https从存储中提供文件来生成缩短的url。

+0

这是一个内部应用程序 - 该应用程序确实检查有效的域名等。人们缩短链接到file://foo/site/project/folder/file.doc文件到类似app/mydoc的东西 – ragebiswas

+0

Still它会受到安全限制。我发现[这个答案](http://security.stackexchange.com/questions/18685/are-there-any-know-browsers-that-support-file-url-redirection),同时搜索更多,并且它引用了这个有用的资源[关于重定向时的安全限制](https://code.google.com/p/browsersec/wiki/Part2#Redirection_restrictions)。如果它适用于某些浏览器,可能是因为这些浏览器中某些特定的放松安全配置。 – NilsH

+0

我已经用更多评论更新了答案。 – NilsH

相关问题