
コラム:AddDefaultCharsetでの文字コードの指定は必要か? †AddDefaultCharsetは文字コードを指定するための設定だ. しかし今回はこの機能を無効にした. そもそもこの設定ができた理由はクロスサイトスクリプティング対策のためだ. というのは,英語でないページを表示しようとしたとき,HTML内やHTTPヘッダで文字コードの指定がない場合,ブラウザが文字コードの自動認識で誤認すると,予期できないHTMLの解釈になる場合がある. その結果,フォームが崩れ,タグが閉じられない状態になったりする場合があり,結果意図しないデータが送信される場合がある. それを避けるためにAddDefaultCharsetは出来たようだが,筆者はこのパラメータはいくつかの場面で逆に問題になると考える. 理由はまずLinuxディストリビューションのような多言語を想定した場合,値はUTF-8になるだろう(多言語を意識していない場合はISO-8859-1になるだろう) しかし日本でUTF-8でHTMLを作成する場面はまだまだ少なく,逆に別の文字コードを使用しているのにUTF-8としてブラウザに解釈させる結果する結果になる. Red Hat Linux 8からapache 2が採用されているが,Red Hat Enterprise Linux 3.0も含め,常にこの問題を抱えている. また,固定値のため,「PC用はEUC-JPを使用するが携帯用はSHIFT JISを使用する」といった複数の文字コードを使用することが出来ない. 結局は自分でサイトを作る場合は必ず自分で文字コードを指定するのが間違いないのである. 参考 †
|