-2

这是我在我的网站上上传文本文件的原始代码:

<?php
$myFile = $_GET['myFile'];
$fh = fopen($myFile, 'w') or die("can't open file");
$stringData = $_GET['stringData'];
fwrite($fh, $stringData);
fclose($fh);
?>

它对你来说足够安全吗,还是我应该使用这样的东西:

<?php
if (isset($_GET['myFile'])) {
    $myFile = basename($_GET['myFile']);
    $fh = fopen($myFile, 'w') or die("can't open file");
}
$stringData = $_GET['stringData'];
fwrite($fh, $stringData);
fclose($fh);
?>
4

2 回答 2

1

第一个代码不会将文件上传到您的服务器,它只是创建一个具有客户端指定的名称和内容的文本文件。

如果您不指定 的值,第二个代码可能会失败myFile: 第二部分将尝试写入一个从未创建过的文件。

于 2012-12-20T18:29:15.417 回答
1

您基本上允许将任何文件上传到当前目录....

例如上传一个 php 脚本,它可以做任何攻击者想要的事情

不......你不应该写那样的代码。

  1. 确保仅将文件上传到特定位置。
  2. 你给他们起名字——从不接受用户。
  3. 学到更多...
于 2012-12-20T18:29:25.130 回答