이 내 웹 사이트에 텍스트 파일을 업로드 할 내 원래의 코드입니다에 fwrite 취약점
이<?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);
?>
왜 당신은 당신의 수신 데이터의 주위에 단순히'베이스 이름을 포장()'호출이 보안 혜택을 제공 할 것으로 생각 ... 자세한 내용을 보려면? 또한, 두 번째 예제에서'if' 문 안에서 실제로 파일 핸들을 작성하고 닫는 부분이없는 이유는 무엇입니까? '$ _GET [ 'myFile']'가 설정되어 있지 않은 경우, 존재하지 않는 파일 핸들을 쓰고 닫으려고 할 때 에러가 발생합니다. –