Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 通过mod_重写的目标URL的模糊程度_Apache_.htaccess_Mod Rewrite_Url Rewriting_Url Routing - Fatal编程技术网

Apache 通过mod_重写的目标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重定向,而是

为了实现单层内容交付安全性,我正在研究通过.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重定向,而是一种类似于我们今天使用的许多框架的路由场景,所以可以安全地说,此重写规则充分混淆了此资源所在的实际URL,或者:

  • 仍然可以通过一些HTTP头嗅探实用程序找到目标URL吗
  • 网络浏览器是否能够显示“下载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