is_file ($ _GET) ve güvenlik

0 Cevap php

Ben önbelleğe alınmış dosyaları yükleme benim PHP dosyasının üstüne bu kodu kullanıyorum ve yeterince güvenli olup olmadığını endişeleniyorum:

//quick! load from cache if exists!
if (is_file('cache/'.($cachefile=basename('/',$_GET['f']))))
{
    header('content-type: text/css');
    require('cache/'.$cachefile);
    die(); //ALL OK, loaded from cache
}

EDIT: Ben de değilse bu istismar ve nasıl güvenli bir şekilde yeniden yazmak nasıl, bilmek istiyorum.

EDIT 2: Ben önceki koddan, kod düzenlenebilir, ben> is_file kötü yolları filtre olacağı düşünülmektedir nasıl bilmiyorum. <

EDIT 3: tekrar değiştirildi, bu nedenle end(explode()) basename() yerine kullanır ve aynı zamanda ilk karşılaştırma (veya dosyaya sırasında değişkene değer atama içine kodu tekrarlamaktan dahil değişti ) kontrol edin.

Ben sadece include($_GET), ama bugün, her nasılsa benim sistemine zarar verebilir ki, is_file yolları filtre olacaktır hiç düşünmemiştim. Ben bilmiyorum.

Teşekkür ederim

0 Cevap