For the past 3 months my site has been using a PHP file handler in combination with htaccess. Users accessing the uploads folder of the site would be redirected to the handler as such:
RewriteRule ^(.+)\.*$ downloader.php?f=%{REQUEST_FILENAME} [L]
Dosya işleyicisi amacı sözde, aşağıda kodlu gerçek kodu tarafından takip edilmektedir.
//Check if file exists and user is downloading from uploads directory; True.
//Check against a file type white list and set the mime type(); $ctype = mime type;
header("Pragma: public"); // required
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: private",false); // required for certain browsers
header("Content-Type: $ctype");
header("Content-Disposition: attachment; filename=\"".basename($filename)."\";" );
header("Content-Transfer-Encoding: binary");
header("Content-Length: ".filesize($filename));
readfile("$filename");
Dün itibariyle, işleyici bozuk dosyaları, okunmaz görüntüleri dönen başladı ve bypass gerekiyordu. Ben bu neden ters gitmiş olabilir ne ayarları merak ediyorum.
-EDIT-
Sorun bulundu, ama çözülmüş değil. Ben Wordpress dosyaları bozarak edilmiştir ile entegre etmek için kullanan bir php kütüphanesine bir yolu da dahil olmak üzere. Bu kod bloğunu Çıkarma yolsuzluk sorunu çözer ama istenen kimlik doğrulama olmadan erişilebilen dosyaları bırakır.
@include_once($_SERVER['DOCUMENT_ROOT'].'/wp-blog-header.php');
if(!is_user_logged_in())
{
auth_redirect(); //Kicks the user to a login page.
}
//resume download script