解決済み: Piping Server (TypeScript) 0.12.0からブラウザにダウンロード強制させることによるセキュリティと利便性のトレードオフに関しての思考
0.12.0からContent-Type: text/htmlをブラウザで開いてもダウンロードされるようになった。 text/htmlはtext/plainに書き換えてブラウザでソースコードとして表示させる案もあるが、元のContent-Typeを書き換えてしまうのはどうかな?と思ってやらなかった。 これはContent-Typeがなくてもブラウザやリバースプロキシが自動でHTMLとして判別したするためにこのようにした。 $ echo -e "HTTP/1.1 200 OK\nContent-Length: 14\n\n<h1>hello</h1>" | nc -l 8081
何が弊害か?
echo hello | curl -T - ...のようなシンプルな送信もブラウザで開くとダウンロードされてしまう。
curlでダウンロードすればターミナルに表示されるだけだが、ブラウザで確認することもよくある。 解決策
あと、テキストかどうかの判別は完璧にはできないはずである。
これが一番現実的で良い案だと思っている
質素なWeb UIを廃止して、HTMLはダウンロードさせない元の状態に戻す 廃止すれば、どんなHTMLも誰かが表示させたものになるため、すべてのHTMLを疑うことが出来るようになる ただ、Piping Serverはじめての人がブラウザで訪れたときに、それがあたかも公式かのように見えるので、事前知識なしでも安全に使えるようにするようにはできない。