Onlara gezinirken bir dizinden komut dosyaları görmezden?

2 Cevap

Şu anda PHP dosya yükleme sript üzerinde çalışıyorum, ama ben tür şaşırıp. Kullanıcılar, PHP ve JS gibi dosyaları yüklemek için izin verilir, ama bir kullanıcı bunları indirmek için çalışıyor komut çalıştırmak istemiyorum. Bu htaccess veya bir şey kullanarak nasılsa o engellemek mümkün mü?

2 Cevap

Sen tarayıcıya dosya içeriğini gönderir sarıcı php dosyası yazabilirsiniz. Ama önce kimse istemeden veya başka tarayıcı üzerinden erişebilirsiniz outside the web root, böylece yüklenen dosyalar saklanır emin olmak gerekir.

Sarıcı php script bu satırlar boyunca bir şey gidebilir:

<?php
    $f = $_GET[ "f" ];
    if ( filename_is_ok( $f ) && is_file( "../some_folder_outside_www/$f" ) )
    {
        header( "Content-Type: text/plain" );
        header( "Content-Disposition: attachment; filename=$f" );
        header( "Content-Length: " . filesize( "../some_folder_outside_www/$f" ) );
        readfile( "../some_folder_outside_www/$f" );
    }
    else
    {
        header("HTTP/1.0 404 Not Found");             
        echo "File not found (or you're not supposed to view this file)";
    }
    function filename_is_ok( $f )
    {
        // You'll have to implement it yourself
        return false;
    }
    // example calls:
    // http://website.com/download.php?f=test.php
    // http://website.com/download.php?f=test.js
?>

Sen gibi, yüklenenler dosya uzantısını değiştirebilirsiniz

my-file.php.txt
my-file.js.txt

Varsayarsak. Txt dosyaları sunucuda php tarafından işlenen alamadım ...