Url böyle bir şey olacaktır:
www.example.com/index.php?file=myFile.ext
Filtreleme, sadece dosyasında leters ve sayıları izin verir, ve tek bir nokta olacaktır.
Filtreleme, her izin karakter için bir iç dizide maçlarında yerine, girişten dosya fonksiyonları karakterleri vermek, bu kopyalar iç diziden karakter değil girişten karakter. Olmaz
Ex:
if( isset(MyArray[inputChar]))
$fileName .= MyArray[inputChar]
Bu, özellikle garip kodlama hataları, php hata karşı korumak için vb
Tam bir örnek feryat (I (array_search kullanılan) yerine isset ()):
//split it to array of chars
$imputCharacters = str_split($_GET["file"]);
//splits it to array like this: [0] => 'a', [1] => 'b', etc
$allowedCharacters = str_split('1234567890abcdefghijklmnopqrstuvwxyz.ABCDEFGHIJKLMNOPQRSTUVWXYZ');
$file = '';
$dots = 0;
foreach ($imputCharacters as $char)
{
$indexKey = array_search($char, $allowedCharacters, true);
if($indexKey === false)
{
die(__FILE__ . __LINE__); // disalowed character
}
else
{
if ($allowedCharacters[$indexKey] === '.') {
$dots++;
if($dots > 1) {
die(__FILE__ . __LINE__); //only one dot allowed
}
}
$file .= $allowedCharacters[$indexKey];
}
}