😇
Web Application開発に10080番ポートは使ってはいけない
要約
- 現在最新のGoogle Chormeで10080番ポートが使用できなくなった
- Firefoxではすでにブロック済み
- NAT Slipstreaming v2攻撃への対応のため
- ブラウザからアクセスするサーバを建てる場合は10080以外のポートにするべき
- 回避方法は一応ある
Chrome 91以降は10080番ポートがブロックされる
Google Chormeの91 (2021/05/25 リリース)から10080番ポートへのサーバに接続できなくなります。
例えば Google Chrome 90だと以下のように10080番のポートを受け付けるサーバにアクセスできますが、91以降だとアクセスできなくなります
% python -m http.server 10080
Serving HTTP on 0.0.0.0 port 10080 (http://0.0.0.0:10080/) ...
127.0.0.1 - - [28/May/2021 11:27:07] "GET / HTTP/1.1" 200 -
具体的には以下のコミットが入ったからのようです。
10080番ポートがブロックされる理由
fetchがbad-port扱いにしたのが直接の理由です。
Firefoxはすでにブロックしているため、Chromeもそれに続く形のようです。
これはNAT Slipstreaming v2攻撃への対策のためです。
具体的な内容は NAT Slipstreaming v2 攻撃とブラウザ側の対策とかを参照してください。
対応策
Firefox/Chromeともにブロックしており、そのうち他のブラウザも追従する可能性がありますし、ブラウザでアクセスするサーバに10080番ポートを利用しないのが良いと思います。
なお、ブラウザの問題なのでサーバ間通信等は問題ないです。
また、Chrome起動時に--explicitly-allowed-ports=10080
を設定することで一応は回避可能です。
Discussion