提供されたクエリを使用するスクリプトを取得し、それらを展開すると、ディレクトリからファイルが呼び出されます。ここにスクリプトがあります
<?php
header("Content-type: text/css");
$safehash = sha1(binary-style_1afn34jdd2);
$css = '';
$root = 'css/'; //directory where the css lives
$files = explode(',',$_SERVER['QUERY_STRING']);
if(sizeof($files))
{
foreach($files as $file)
{
$css.= (is_file($root.$file.'.css') ? file_get_contents($root.$file.'.css') : '');
}
}
function compress($css){
// Remove comments
$css = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $css);
// Remove spaces before and after symbols
$css = preg_replace('/(\s(?=\W))|((?<=\W)\s)/', '', $css);
// Remove remaining whitespace
$css = str_replace(array("\r\n","\r","\n","\t",' ',' ',' '), '', $css);
return $css;
}
echo compress($css);
?>
問題は、style.php?sheet、sheet、sheet、sheet ..... ectのようなスクリプトにクエリを追加するだけで、読み取りを使い果たしてサーバーがクラッシュする可能性があるという事実です。このコードを保護するための最良の方法は?