62371


ふと疑問に思ったのですが、

自分が所有するレンタルサーバーに Javascript のファイルを置いていて、  
src="" で自分のサイトで読み込んだ場合に、そのディレクトリがわかると思いますが、  
これを誰かが CDN で使用された場合に、自分のサーバーに負荷はかかるのでしょうか。

また、これをセキュリティの観点から防ぐにはどうしたらよいのでしょうか。


CC BY-SA 4.0
2020-01-15T03:16:11.497
62250
2020-01-20T00:57:14.467
29440
question
javascript
自分のサーバー上に保存したファイルが勝手に CDN で使用されたら？


答えとしては、  
負荷がかかります。これはWebを公開している以上発生してしまう問題です。

いくつか制約（ライセンスや技術的な制限）をかけて防ぐことはできるかもしれないですが、  
あまり見かけません。  
殆どの場合そのコストと見合うだけのリスクがないというのが実態なのではないかなと思います。

たとえば、  
汎用的で有用なライブラリとして利用できるJavascriptであるならば、一般的にはjQueryやその他のライブラリのようにCDNを用意して公開します。  
しかし、殆どのJavascriptは1サイトの特定の機能や仕様に基づいたそのサイト向けのJavascriptなので  
流用できるものではないでしょう。

また  
仮に有用なライブラリであり、外部リンクを利用して自分のサイトに埋め込んだとします。  
しかし、参照先の外部サイトがなくなったり、JSのディレクトリが変わったり、もしくは仕様の変更があった場合に、不具合が発生してしまうことになります。  
そうなるのであれば、コピペして自分のサイトのJavascriptとして利用することになるでしょう。

上記のことを考えるとあまり考えるべきリスクではないかなという判断できると思いますがいかがでしょうか？

P.S.  
CDNはコンテンツを最適に配信できるサービスのことを指し、  
外部ドメインのコンテンツを利用することを指す言葉では有りません。  
Javascriptのライブラリ界隈では快適に外部ドメインでソースを利用するために、CDNを利用しています。


CC BY-SA 4.0
2020-01-20T00:38:41.133
62371
2020-01-20T00:38:41.133
22665
62250
answer


一例として、WebサーバがApacheであれば以下の様に `.htaccess`を使って別ドメインからのいわゆる  
"直リンク" を禁止する方法があるようです。

**参考:**  
[.htaccess で別ドメインから画像やスクリプトファイルへの直リンク禁止する方法](https://webllica.com/deny-
requests-from-another-domains-by-htaccess/)

URLの部分にアクセスを許可する(自分自身の)ドメインを指定。上記のサイトには指定した拡張子のファイルのみに制限をかける方法なども紹介されています。

>
[code]

>     SetEnvIf Referer "^https://example\.com" ref001
>     SetEnvIf Referer "^$" ref001
>     order deny,allow
>     deny from all
>     allow from env=ref001
>  
[/code]


CC BY-SA 4.0
2020-01-20T00:57:14.467
62372
2020-01-20T00:57:14.467
3060
62250
answer