出于安全原因以及我不想将静态文件暴露给未经授权的人,每个请求都会传递给 PHP。
我担心有人通过$_SERVER["REQUEST_URI"]
变量注入一些恶意代码的可能性。我试图删除子文件夹引用,但我仍然不知道它是否安全。
Nginx
rewrite ^ /index.php last;
索引.php
<?php
$uri = $_SERVER["REQUEST_URI"];
$uri = strlen ($uri) > 1 ? substr ($uri, 1) : "index.html";
$uri = preg_replace ("/\/?\.\./", "", $uri, -1); // Remove sub-folders
if (file_exists (getcwd () . "/" . $uri)) {
$extension = substr ($uri, strrpos ($uri, "."));
switch ($extension) {
case ".css": $mime = "text/css"; break;
case ".js": $mime = "application/javascript"; break;
default:
$info = finfo_open (FILEINFO_MIME_TYPE);
$mime = finfo_file ($info, $uri);
finfo_close ($info);
break;
}
if ($mime === false)
header ("Content-Type: text/html; charset=utf-8"); // Default
else
header ("Content-type: " . $mime);
require ($uri);
}
else {
// Error, blah blah blah
}
?>