Apache 通过mod_重写的目标URL的模糊程度
为了实现单层内容交付安全性,我正在研究通过.htaccess重写规则隐藏资源URL的可能性:Apache 通过mod_重写的目标URL的模糊程度,apache,.htaccess,mod-rewrite,url-rewriting,url-routing,Apache,.htaccess,Mod Rewrite,Url Rewriting,Url Routing,为了实现单层内容交付安全性,我正在研究通过.htaccess重写规则隐藏资源URL的可能性: RewriteEngine on RewriteBase /js/ RewriteRule obscure-alias\.js http://example.com/sensitive.js 当然,它的实施方式如下: <script type="text/javascript" src="obscure-alias.js"></script> 因为这不是301重定向,而是
RewriteEngine on
RewriteBase /js/
RewriteRule obscure-alias\.js http://example.com/sensitive.js
当然,它的实施方式如下:
<script type="text/javascript" src="obscure-alias.js"></script>
因为这不是301重定向,而是一种类似于我们今天使用的许多框架的路由场景,所以可以安全地说,此重写规则充分混淆了此资源所在的实际URL,或者:
我将通过对这两个问题都说“不”来预先回答我自己的问题,因为“内部代理”发生在服务器端,而不是客户端,如果我理解正确的话:。我只是想确认,当Apache为目标URL提供服务时,它也没有将信息传递给用户代理它将原始请求重写为什么URL。这取决于您如何指定重定向目标 如果您的
http://example.com/
在同一台服务器上运行时,将有一个对客户端不可见的内部重定向。从:
绝对URL
如果指定了绝对URL,mod_rewrite将检查主机名是否与当前主机匹配。如果是这样,则会剥离方案和主机名,并将生成的路径视为URL路径。否则,将对给定URL执行外部重定向。要强制外部重定向回当前主机,请参阅下面的[R]标志
如果绝对URL指向远程域,将执行头重定向。头重定向对客户端可见,并将显示敏感位置
要确保没有发生外部重定向,请指定一个相对URL,如
RewriteRule obscure-alias\.js sensitive.js
请注意,仍然可以猜测敏感JS文件的URL
要了解请求是否会导致报头重定向,请登录到终端(例如Linux服务器)并执行以下操作
如果第一个HTTP/…
行(可能不止一行)是以3xx
开头的内容,如
HTTP request sent, awaiting response...
HTTP/1.1 302 Moved Temporarily
您正在查看标头重定向。可能使用代理吞吐量 看
这里也提到:如果我仍然想使用远程域(例如CDN托管)来实现这一点,这样的东西是否会与mod_rewrite一起成为一个选项@马特:是的,你必须代理它。
HTTP request sent, awaiting response...
HTTP/1.1 302 Moved Temporarily