2016-08-05 3 views
-3

科学のため。入力に拡張子が追加されたときにfopenを利用する

は、私は次のコードを持って言う:

<?php 
$filename = $_GET['filename'] . '.csv'; 
$handle = @fopen($filename); 

我々がNULLバイトが利用することを知っていなくなって久しいが、それは.CSVの上記の添付を回避することが可能である、とのファイルを読み取るためにされてもう一つの拡張?非常に創造的な魂が存在します。

リモートファイルの読み取りは、ファイル名= http://example.com/some.csv(.csvが自動的に追加されます)。

+0

どのような方法で悪用するのですか?あなたはそのファイル/ハンドルで何をしていますか? – Eiko

+1

私は、 'example.pdf?ommit.csv'はうまくいくのだろうか... .. –

+0

ああ、私はそれを追加しておくべきです。ハンドラがファイルをCSVとして読み込みますが、ファイルが実際のCSV(カンマまたはセミコロン)でない場合でも、このプロセスによって情報が吐き出される可能性があります。 – Michael

答えて

1

あなたがhttp://example.com/some.pdf?csvを照会した場合、fopenはpdfファイルを収集しようとします...

むしろ(あなたが常にがあなたの入力を検証する必要があります)$_GETを検証するために正規表現を使用します。

/(\.csv)$/gがお手伝いします拡張子が有効かどうかを確認する.csv

+0

良い点は、間違いなくそれを回避する方法の1つです。 – Michael

関連する問題