>백엔드 개발 >PHP 튜토리얼 >求三行代码的安全性问题_PHP教程

求三行代码的安全性问题_PHP教程

WBOY
WBOY원래의
2016-07-13 10:51:34789검색




求三行代码的安全性问题



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


www.bkjia.comtruehttp://www.bkjia.com/PHPjc/632563.htmlTechArticle求三行代码的安全性问题 $js = explode(',',$_GET['js']); foreach ($js as $file) { echo file_get_contents('./public/js/'.$file.'.js')."n"; } 复制代码攻击者有没方法...
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.