求三行代码的安全性问题
$js = explode(',',$_GET['js']);
foreach ($js as $file) {
echo file_get_contents('./public/js/'.$file.'.js')."n";
}
复制代码攻击者有没方法读到服务器上的PHP文件
[ ]
我来回答
D8888D回贴内容-------------------------------------------------------
$js = $_GET['js'];
$js = explode(',',$js);
$error = null;
!is_array($js) && $error +=1;
$str = null;
foreach ($js as $file) {
eregi('[[:punct:]]',$file) && $error +=1;
$files = "./public/js/{$file}.js";
if (is_file($files))
$str .= file_get_contents($files)."n";
}
if($error!==null)
exit('错误');
echo $str;
?>
复制代码[ ]
D8888D回贴内容-------------------------------------------------------
谢谢于安
我不管错误了怎么处理,想了解的是黑客有没可能绕过后缀.js的限制访问php文件
反正除了黑客没其他人用的
错误加个error_reporting(0);就是了
刚看了这篇文章
[url=http://www.111cn.cn/html/18/t-3418.html]链接标记http://www.111cn.cn/html/18/t-3418.html[/url]
D8888D回贴内容-------------------------------------------------------
习惯总得养成好.. 流程控制好..
以便维护.
D8888D回贴内容-------------------------------------------------------
恩恩额、
你觉得绕过限制容易吗
D8888D回贴内容-------------------------------------------------------
看你的代码.,
读文件, 还循环来读.. 感觉不出来是什么程序需要这种结构..
D8888D回贴内容-------------------------------------------------------
不错
D8888D回贴内容-------------------------------------------------------
我代码是js加载用的,把所有js放到一个文件里面,减少request数
比如
需要加载jquery,fckeditor不需要thnikbox的页面就js=jquery,fckeditor
代码很简单,效率应该和直接加载一个文件一样
D8888D回贴内容-------------------------------------------------------
一个页面有再多js都只 script一次
D8888D回贴内容-------------------------------------------------------
不要包含$_GET上来的文件
PHP是可以包含远程文件的