从URL中删除尾部斜杠总是安全的吗?

Dan*_*ola 7 database url

我将URL存储在数据库中,我希望能够知道两个URL是否相同.

通常,末尾的尾部斜杠不会更改您从服务器获得的响应.(即http://www.google.com/http://www.google.com相同)

我是否可以盲目地从任何URL中删除尾部斜杠,而不查看任何内容?
这样安全吗?

我的意思是"不看任何东西"就是我要删除斜杠:http://www.google.com/q? xxx = something &yyy = something
/

我知道Web服务器理论上可以根据需要返回完全不同的东西,而且我知道有时会在不使用斜杠的情况下转到URL,而是重定向到斜杠.我唯一的目的是确定两个URL是否相同.

这种方法安全吗?

daj*_*obe 19

不,它并不总是安全的.Web服务器无论如何都可以解释URL的路径部分.如果不在URL上使用GET或HEAD,您无法分辨它将做什么(解析URI).


Mic*_*tta 7

它可能是安全的,你会得到相同的响应,有或没有尾随斜线(我不能保证这是真的),但它们肯定意味着不同的东西.考虑引用目录的URL,或者站点作为目录呈现的内容.使用URL

http://www.somesite.com/directory/
Run Code Online (Sandbox Code Playgroud)

...明确表示你要求一个目录.如果你砍掉斜杠:

http://www.somesite.com/directory
Run Code Online (Sandbox Code Playgroud)

...该网站将把它作为一个名为"目录"的文件的请求,让所有人感到困惑.它可能会将此解释为对目录的请求,但其含义并不相同,您可能无法得到您期望的结果.

有关详细信息,请参阅此文章.