アカウント名:
パスワード:
ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้ (・ω・) ด็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็. ← Unicode 合字 の例 (IE で表示すると、本来のコメント欄の領域を多少はみ出して他の情報に重なります)
Unicode は複雑化されすぎて、普通のプログラマーが理解できる
>普通のプログラマーが理解できる範疇を超えているように思えます。
普通のプログラマーが変換以外でコード体系を意識しなきゃいけないことって、現代ではそうそう無くね? 文字が表示できず画面が崩れるのはOSや処理系の問題であって、プログラマーがいちいち意識しなければいけないというのはおかしいでしょう。
確かにおっしゃる通り、文字エンコーディングの validation をしなくても脆弱性にならないのが本来の姿ですが、現状はそうではありません。文字コードの脆弱性はこの3年間でどの程度対策されたか? [slideshare.net] をお読みいただければ分かるように、昔に比べるとプラットフォーム側での整備が進み安全性が強化されつつありますが、完璧とは言えない現状があります。
所謂マルチバイトXSSに対してはプラットフォーム側での対策がだいぶ進みましたが、Unicode の特殊文字や制御コードによるサービス拒否攻撃防止のための対策は全く進んでいません。特定のUnicode特殊文字・制御文字を送ると受信した側のLINEがフリーズ・起動不能になる現象については、そもそも iOS の Unicode の実装に問題があることが根本的な問題(Android については特殊な文字はそもそも対応していないので問題は発生していない)です。しかし、Apple は iOS の既存の Unicode の問題の修正もまともにせず、更に Unicode を複雑化させ問題を深刻化させたいようですから、アプリ側での validation を強化するしかないのではないでしょうか。
具体的には、ユーザーから送信されるデータを受け付ける際に、コード順ブロック一覧 [wikipedia.org] の中の特定の範囲のコードのみを受け付けて他はエラーにするなど。
--
別コメントにするほどではないので、ここについでに書いてしまいますが、 #2767675 の 「PHP の制御コード等を適切に validation」 は 「Unicode の制御コード等を適切に validation」 の誤りでした。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」
Unicode はサービス拒否攻撃のリスク有り (スコア:3, 興味深い)
ด้้้้็็็็็้้้้้็็็็็้้้้้้้้็็็็็้้้้้็็็็็้้้้้้้้ (・ω・) ด็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็็. ← Unicode 合字 の例 (IE で表示すると、本来のコメント欄の領域を多少はみ出して他の情報に重なります)
Unicode は複雑化されすぎて、普通のプログラマーが理解できる
Re: (スコア:0)
>普通のプログラマーが理解できる範疇を超えているように思えます。
普通のプログラマーが変換以外でコード体系を意識しなきゃいけないことって、現代ではそうそう無くね? 文字が表示できず画面が崩れるのはOSや処理系の問題であって、プログラマーがいちいち意識しなければいけないというのはおかしいでしょう。
Re:Unicode はサービス拒否攻撃のリスク有り (スコア:2)
確かにおっしゃる通り、文字エンコーディングの validation をしなくても脆弱性にならないのが本来の姿ですが、現状はそうではありません。文字コードの脆弱性はこの3年間でどの程度対策されたか? [slideshare.net] をお読みいただければ分かるように、昔に比べるとプラットフォーム側での整備が進み安全性が強化されつつありますが、完璧とは言えない現状があります。
所謂マルチバイトXSSに対してはプラットフォーム側での対策がだいぶ進みましたが、Unicode の特殊文字や制御コードによるサービス拒否攻撃防止のための対策は全く進んでいません。特定のUnicode特殊文字・制御文字を送ると受信した側のLINEがフリーズ・起動不能になる現象については、そもそも iOS の Unicode の実装に問題があることが根本的な問題(Android については特殊な文字はそもそも対応していないので問題は発生していない)です。しかし、Apple は iOS の既存の Unicode の問題の修正もまともにせず、更に Unicode を複雑化させ問題を深刻化させたいようですから、アプリ側での validation を強化するしかないのではないでしょうか。
具体的には、ユーザーから送信されるデータを受け付ける際に、コード順ブロック一覧 [wikipedia.org] の中の特定の範囲のコードのみを受け付けて他はエラーにするなど。
--
別コメントにするほどではないので、ここについでに書いてしまいますが、 #2767675 の 「PHP の制御コード等を適切に validation」 は 「Unicode の制御コード等を適切に validation」 の誤りでした。