Re: バグ報告スレッド 14 [ No.479 ]
メンテ
 2025/02/26 03:17
 &◆5Jm27J
> 2025/02/22 10:46
> SmokingWOLF
> ID:errreirpL408

> ●【テキスト出力/調整】マップ・コモン・各DB・タイルセットで
>    出力可能なテキストファイルに、UTF-8の「BOM」を付けるよう修正
>  → コモンのTXTファイルなどをサイトにアップしても
>    UTF-8文字コードと認識されなくて不便だったためです。

UTF-8にBOMを付けないでください

ストリームの先頭の0xEF 0xBB 0xBFのせいでUTF-8と認識できなかった場合かつ、UTF-7のエスケープ文字が含まれる場合にそれを見つけた時点でUTF-7と判断するプログラムで任意のBASE64をデコードさせる脆弱性に繋がります。これは昔あったIEにUTF-7を認識させるXSSと同じ攻撃です。

素のUTF-7のエスケープ文字'+'で任意のBASE64をデコードさせることができるソフトがあることは確認しました。おそらく修正UTF-7を認識するプログラムならば'&'でも可能です。

unicode consortiumはUTF-8のBOMについて「付けてもよいが推奨はしない」としていますがunicodeを参照する上位の仕様・標準において最近では「UTF-8にBOMを付けてはならない(MUST NOT)、エラーとして扱わなくてもよい(MAY)」とする傾向になってきています。

また、windowsにおいてもVS2015からコマンドライン引数でBOMなしUTF-8を処理できるようになりwin 10 may updateからメモ帳がBOMなしを処理できるようになるなど変化しています。PowerShellのスクリプトもgithubを見ているとBOM無しが増えてきました。