2013-03-11 105 views
0

即时通讯使用此代码将CSV文件上传到我的服务器文件夹并提取要插入数据库的数据。如果用户不小心上传了带有病毒的CSV文件?由于系统不执行文件,系统/服务器是否会被病毒感染?php和CSV文件上传,如果该文件有病毒呢?

$name = ($_FILES['fileuploaded']['name']); 
$tmp_name = ($_FILES['fileuploaded']['tmp_name']); 
$_SESSION['username']=$username;  
if($name){ 
    $location = "files/$name"; 
    move_uploaded_file($tmp_name,$location); 
    $file_handle = fopen("files/".$name, "r"); 
} 
+0

.csv文件只是文本。除非你的系统已经被配置为将csv作为可执行文件处理,否则很可能感染任何东西。我会更加担心有些东西会攻击'''name']'来扩大你的代码盲目使用的路径,从而允许恶意用户随意在他们想要的服务器上随意涂鸦他们的文件。 – 2013-03-11 15:58:11

+0

这意味着即使CSV文件有病毒,如果用户将其上传到系统,系统也不会受到感染。 – BattleGuard03 2013-03-11 16:05:30

+0

除了病毒之外,系统可能遇到的CSV文件上传可能存在哪些威胁? – BattleGuard03 2013-03-11 16:06:56

回答

1

“如果用户不小心上传了带有病毒的CSV文件会怎么样?”。我会更关心“如果用户意图上传一个含有病毒的CSV文件怎么办”。由于您没有检查文件类型,因此有人可能会上传一个名为bad.php的文件,并猜测您可能会将其放在一个名为files的文件夹中,然后执行它并造成各种损坏。

+0

如果我确保文件类型安全,系统只读取.CSV文件? – BattleGuard03 2013-03-11 15:54:53

+0

该系统是关于上传成绩,用户转换excel文件和进入CSV,以避免编码我使用上传的等级,以方便用户。我的目标是仅从任何病毒向服务器提供安全性。 – BattleGuard03 2013-03-11 15:57:17

+0

这肯定会有帮助。您也可以将该文件保存在文档根目录下,以便无法从Web服务器访问该文件。或者你需要移动它。如果您不需要保存它,只需读取临时文件即可。 – 2013-03-11 15:57:39