アカウント名:
パスワード:
C言語系の言語だと NUL (\x00) を文字列の終了とみなして勝手に処理を打ち切るとか色々問題起こるので、NULLバイトとかASCIIの制御文字はバリエーションで弾くのが常識だと思ってたけど、いまだにこんなレベルの低い脆弱性が主要MUAにあったとは驚き。
今はどうだか知らんが、10年ぐらい前はphpでもC言語系の非バイナリセーフ関数が入り乱れてて ereg() ですらNUL文字以降が無視されたからバリエーション回避に悪用されたし、ディレクトリトラバーサルもやり放題だったから、入力値は受け取った時点で \x00 が含まれていないことをバイナリセーフ関数で確認するのが常
何のバリエーションなのかと思ったらひょっとしてバリデーションですかね…
NULなんて言語(ライブラリ)で面倒見るべきってのはいうてもまぁ妥当なんじゃないかな…「プログラマが注意深くなければ間違う」なんて命令自体がおかしいのよやっぱ
IMEで「バリ」と打った時の予測候補を信頼したら、文脈上誤った文字列がスラド投稿フォームにインジェクションされてしまったようです。IMEの飼い主としてお詫びします。
NULなんて言語(ライブラリ)で面倒見るべきってのはいうてもまぁ妥当なんじゃないかな…
使おうとする関数がバイナリセーフかを確認するのはプログラマーの責任だと思います。それが面倒なら、すべての関数がバイナリセーフである言語やライブラリを使うべきでしょう。
> 使おうとする関数がバイナリセーフかを確認するのはプログラマーの責任だと思います。それが面倒なら、すべての関数がバイナリセーフである言語やライブラリを使うべきでしょう。
「プログラマの責任だからやるべきだ」てのはまぁわかりますが、「やるべきだからやるのだ」が通らないだけの量、これはコードの量であったり、必要なプログラマの数であったり、になってんじゃないですかねと言う感じです
ベテランプロが知り尽くした言語で戦ってれば安全率は高いでしょうが、トータルの生産量が膨大なら結局ミスは出ます。
「考えるのが面倒だからそういう言語は使わない」ではなく「考えるのが面倒なそういう言語は撲滅すべき」なんかなと思います。
答えがある話じゃないですけどね…
アセンブリ言語は考えるのが面倒だから撲滅すべきでしょうか?目的や状況に応じて言語を選べば良いのであって、特定の目的や状況に合わないからといって、何か言語を撲滅すべきという考えには全く賛同できません。
撲滅もなにもアセンブリ言語って全ての根幹みたいなものだしなあ厳密には機械語だけど、その命令セットを単語に置き換えた以外はほぼ機械語だし良いとか悪いとか以前に全てのプログラムは機械語(アセンブリ言語)に通じてるから無くしようがない適材適所とは違う次元のものになるかと思います
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人はmoriwaka -- Anonymous Coward
Mozilla Thunderbird は MTA が悪いから対策する気がないと表明 (スコア:0)
C言語系の言語だと NUL (\x00) を文字列の終了とみなして勝手に処理を打ち切るとか色々問題起こるので、NULLバイトとかASCIIの制御文字はバリエーションで弾くのが常識だと思ってたけど、いまだにこんなレベルの低い脆弱性が主要MUAにあったとは驚き。
今はどうだか知らんが、10年ぐらい前はphpでもC言語系の非バイナリセーフ関数が入り乱れてて ereg() ですらNUL文字以降が無視されたからバリエーション回避に悪用されたし、ディレクトリトラバーサルもやり放題だったから、入力値は受け取った時点で \x00 が含まれていないことをバイナリセーフ関数で確認するのが常
Re: (スコア:2)
何のバリエーションなのかと思ったらひょっとしてバリデーションですかね…
NULなんて言語(ライブラリ)で面倒見るべきってのは
いうてもまぁ妥当なんじゃないかな…
「プログラマが注意深くなければ間違う」なんて命令自体がおかしいのよやっぱ
Re: (スコア:1)
IMEで「バリ」と打った時の予測候補を信頼したら、文脈上誤った文字列がスラド投稿フォームにインジェクションされてしまったようです。IMEの飼い主としてお詫びします。
使おうとする関数がバイナリセーフかを確認するのはプログラマーの責任だと思います。それが面倒なら、すべての関数がバイナリセーフである言語やライブラリを使うべきでしょう。
Re: (スコア:3)
> 使おうとする関数がバイナリセーフかを確認するのはプログラマーの責任だと思います。それが面倒なら、すべての関数がバイナリセーフである言語やライブラリを使うべきでしょう。
「プログラマの責任だからやるべきだ」
てのはまぁわかりますが、
「やるべきだからやるのだ」が通らないだけの量、
これはコードの量であったり、必要なプログラマの数であったり、
になってんじゃないですかねと言う感じです
ベテランプロが知り尽くした言語で戦ってれば安全率は高いでしょうが、
トータルの生産量が膨大なら結局ミスは出ます。
「考えるのが面倒だからそういう言語は使わない」ではなく
「考えるのが面倒なそういう言語は撲滅すべき」なんかなと思います。
答えがある話じゃないですけどね…
Re: (スコア:0)
アセンブリ言語は考えるのが面倒だから撲滅すべきでしょうか?
目的や状況に応じて言語を選べば良いのであって、特定の目的や状況に合わないからといって、何か言語を撲滅すべきという考えには全く賛同できません。
Re:Mozilla Thunderbird は MTA が悪いから対策する気がないと表明 (スコア:0)
撲滅もなにもアセンブリ言語って全ての根幹みたいなものだしなあ
厳密には機械語だけど、その命令セットを単語に置き換えた以外はほぼ機械語だし
良いとか悪いとか以前に全てのプログラムは機械語(アセンブリ言語)に通じてるから無くしようがない
適材適所とは違う次元のものになるかと思います