

**質問**  
Q1.Nginxで、wget からのダウンロードを拒否することは出来ますか？  
Q2.Nginxで、指定拡張子のみ、wget からのダウンロードを拒否することは出来ますか？

**分からない点**  
・wget からのダウンロード実行を拒否できる？ それとも、wget からのアクセス自体を拒否するしかない？  
・wget を「user agent」で拒否することは可能？ wget 使用する際の「user agent」はどうなりますか？

**質問背景**  
「.htaccess」で出来ることを、Nginxではどのように設定するか(出来るか)、知りたい

* * *

2020/7/13  
質問文を大幅に修正しました

2020/7/12  
「自分以外からダウンロードされないよう」を「ダウンロードされないよう」へ変更しました。


CC BY-SA 4.0
2020-07-10T06:53:16.597
68462
2020-07-13T13:49:22.637
2020-07-13T01:07:41.247
7886
7886
question
centos nginx
Nginxで、wget からのダウンロードを拒否したい


まあわざわざ作らなくても Microsoft OneDrive とか Google Drive とかありますし Nginx
にこだわることなく柔軟に運用すればよいかと。


CC BY-SA 4.0
2020-07-10T09:57:52.973
68467
2020-07-10T09:57:52.973
8589
68462
answer


これを行うためには、nginx に「自分」と「他人」を認識してもらう必要があります。しかし物理的な自他の差は nginx
が認識できる情報ではありません。このため「自分」の定義の方を見直すか、nginx では無いもので管理するかをすることになりでしょう。

「自分」の定義の方を見直す方法としては、たとえば「特定の IP アドレスのみ allow
する」という方法はあります。しかしこれはあまり便利ではないでしょう。ノートパソコンを持って別のネットワークから接続したいことはよくあるだろうことを考えると、自分の
IP アドレスが常に固定されているという前提はあまり置きたくありません。

他の方法としては nginx レベルでのパスワード認証を使うことも考えられます（パスワードを知っているなら自分、とする）。BASIC 認証や Digest
認証程度の認証能力で満足できるなら一応使えます。

nginx で無いものを使う方法としては、そもそも wget ではなくて ssh
を使うようにして、ファイルパーミッションで縛るやり方があります。サーバー上のファイルをユーザー認証付きで読み書きしたいのであれば普通まずは ssh
を検討しそうな気がします。

まあしかしここまで書いておいてなんですが、[774RR
さんの回答](https://ja.stackoverflow.com/a/68467/19110)にもあるように、自分だけが見えるファイルをインターネット越しに見えるようにしておきたいだけなのであれば
Google Drive 等のサービスを使う方が管理もラクですし便利です。


CC BY-SA 4.0
2020-07-12T09:40:40.373
68521
2020-07-12T09:40:40.373
19110
68462
answer


wgetや他ツールでもUser-Agentが大体変えられるのですが、一般のユーザは、Defaultを使うとしては、`user-agent`
による拒否は可能でしょう。

> Wget normally identifies as **‘Wget/version’** , version being the current
> version number of Wget.

<https://www.gnu.org/software/wget/manual/wget.html#index-user_002dagent>

nginxによるUser-Agent拒否：  
<http://www.scalescale.com/tips/nginx/block-user-agents-
nginx/?replytocom=163615#>


CC BY-SA 4.0
2020-07-13T13:49:22.637
68560
2020-07-13T13:49:22.637
2314
68462
answer