2

URL にメディア フォルダーがありexample.com/media/、サーバーでスクリプトを実行しているユーザーを拒否したいと考えています。私のサーバーアプリはnginxであり、書き込み可能なディレクトリ内でスクリプトの実行を拒否する方法では、特定のURLについて特別なものを見つけることができませんでした. これは私のnginxサーバー構成です:

# sites-avalaible/default
server {
        listen  80;
        listen  443 ssl;
        server_name     www.example.com example.com;
        ssl_certificate /var/www/example/ssl/ssl.crt;
        ssl_certificate_key     /var/www/example/ssl/ssl.key;
        location /static  {
                alias   /var/www/example/static;
                expires 7d;
                add_header Pragma public;
                add_header Cache-Control "public, must-revalidate, proxy-revalidate";

        }
        location /media  {
                alias  /var/www/example/media;
                # limit download speed after 5mb download
                limit_rate_after 5m;
                limit_rate 120k;
                limit_req zone=lh burst=5 nodelay;
        }
        location / {
                proxy_pass      http://127.0.0.1:8000;
        }
}

ユーザーがファイルをサーバーにアップロードできるメディア URL で実行可能なものを実行することを拒否したい。どうやってやるの?たとえば、ユーザーがexample.com/media/bomb.pynginx に移動すると、404 エラー ページが返されます。メディア フォルダーの実行権限も変更しましたが、スクリプト ファイルの表示を停止するには、nginx に対して行う必要があります。

4

3 に答える 3

1

編集: 他のスクリプト タイプのサポートが後で追加された場合は、認識されたメディア タイプのみを提供し、残りを拒否する方が安全です。

location ^~ /media/ {
    location ~ \.(?:jpg|png|gif)$ {}
    return 403; # or 404
}
于 2014-03-09T13:00:59.713 に答える
-2

PHPの実行を防ぐためのメディアの場所

場所 ^~ /メディア/ {}

于 2015-07-29T17:33:15.533 に答える