最初,我很抱歉我的问题标题,但我真的没有更好的想法......
我有一个 .htaccess 文件可以进行“通常”的重写:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
这让我有可能拥有这个网址,例如(我正在使用 xampp):
localhost/<project>/en/products/electronic/television/
所以这个 url 在 $_GET['url'] 变量中,我可以使用它(作为一个数组)在我的 HMVC 模式中加载控制器。
而且,为了不必输入语言(上例中的“en”),我实现了一个自动插入“en”的功能。基本上这意味着下面的 url 给出了相同的控制器,并且分别给出了相同的输出。
localhost/<project>/products/electronic/television/
但现在我想知道,我的 javascript 文件 (jquery & co) 位于文件夹中
<project>/lib/js/query/jquery.min.js
可以像这样简单地要求:
<script type="text/javascript" src="/<project>/lib/js/jquery/jquery.js"></script>
我预计请求的路径最终会是这样的(当我在 $_GET['url'] 变量中添加语言时,它会尝试加载控制器并失败......
src="/<project>/en/lib/js/jquery/jquery.js"
好吧,在那种情况下,我会很高兴它以这种方式工作,但它让我想到了尝试这个的想法:
$(document).ready(function() {
alert("this is a test");
$.get("/<project>/<config-dir>/<config-file>", function(data) {
alert(data);
});
});
瞧,它输出配置文件。我认为在生产服务器上的行为将是相同的,但是路径中没有“/”节点。在不从文档根目录移动配置文件的情况下,如何防止这种情况发生?
基本上,我已经确保 XSS 攻击不会(几乎)不成功。“几乎”只是因为没有 100% 的安全。
我希望我能很好地表达自己:) 感谢您的帮助/建议。