欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

求三行代码的安全性问题

程序员文章站 2022-06-17 17:09:50
...
求三行代码的安全性问题



$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是可以包含远程文件的