SQLインジェクション対策としてのプリペアドステートメントとエスケープについての議論

11
前へ 1 ・・ 3 4 次へ
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz なぜ正確なテキスト処理が必要なのかを知らない・理解していないから、プリペアードクエリを使っていてもインジェクションに脆弱なコードを書いてしまいます。その原因をどう無くすか?を考えています。「APIを正しく使えばインジェクションできないから使え」は原因が残ったままです

2013-12-09 20:39:14
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz アプリセキュリティ対策の根本的な対策は教育だ、と何度か書いていますが教育以外にもっと良い根本的な解決策があるのですか?

2013-12-09 20:40:31
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz SQLインジェクションを完全に無くすための方法論を教えて頂けないですか?現実にあった失敗を含めて無くす方法論でないと採用できませんが。

2013-12-09 20:42:20
ROCA @rocaz

@yohgaki いいえ。「正しい静的SQLの発行の仕方」を教えてあげるだけですよ。考え込むまでも無い。エスケープなんて出てくる余地さえ無い。 今分かりましたけど、大垣さんは「正しい静的SQLの発行の仕方」を知りませんね?

2013-12-09 20:42:39
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz それを知らないかも、と思われるのは不本意ですね(笑 私のブログにも解説があったと思います。探してみて下さい。

2013-12-09 20:44:07
ROCA @rocaz

この人、正しいプリペアドステートメントとプレースホルダの使い方知らずに、エスケープ最強とかって徳丸さんと議論してたぞ!!

2013-12-09 20:44:25
ROCA @rocaz

@yohgaki いや、知らないでしょ。知らないのに偉そうに議論ふっかけてただけでしょ。知ってたというならその箇所を示して下さい

2013-12-09 20:46:14
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz 誤解は構わないので、リスクを正しく理解してもらえる方法論をお願いします!

2013-12-09 20:47:33
ROCA @rocaz

@yohgaki そこを大垣さんが方法論を示して欲しいと懇願すること自体が理解していなかった証左ですよ

2013-12-09 20:49:10
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz 議論の論点からずれているので、間違っていると思えたところはご自由に指摘してください。リスクを正しく理解してもらえる方法論をお願いします!

2013-12-09 20:49:41
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz もう十分私が何故こう考えるのか論理的な背景は説明しました。より優れている方法論を解説してくだい。

2013-12-09 20:51:21
ROCA @rocaz

@yohgaki 恥ずかしいのは良く分かりますが、大垣さんが「正しい静的SQLの発行の仕方」を理解していない以上、徳丸さんとの議論とかエスケープしかよい方法が無いという思い込みとかブログの内容とか、全て無意味ですよね

2013-12-09 20:52:33
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz もう席を離れるので、長くなるなら連投で構いません。より優れた方法論の解説をお願いします。

2013-12-09 20:52:46
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz ご自分の優れた方法論を解説されないつもりでしょうか?それこそ議論に意味がないのでは?

2013-12-09 20:53:35
Yasuo Ohgaki (大垣靖男) @yohgaki

@rocaz ということで解説をお待ちします。また明日。

2013-12-09 20:54:12
ROCA @rocaz

@yohgaki ええ、「セキュリティ論より教えやすいのが重要」と考えていらっしゃったのは良く分かりました。それがエスケープの方が優れていると主張せざるを得なかった理由だとも判明できました

2013-12-09 20:54:51
ROCA @rocaz

@yohgaki 何度も申し上げていますが、「正しい静的SQLの発行の仕方」で事足りるのです。これが理解できず「具体的な方法論を」と懇願されているだけなのです。これまであなたが議論されてきた方は皆さん当然理解されているでしょう。方法論は理解していないから見えないだけです

2013-12-09 20:59:16
ROCA @rocaz

@yohgaki これも何度も申し上げますが、あなたがきちんと「正しい静的SQLの発行の仕方」を理解していた証左をブログからで結構ですから示してみて下さい。無理ですよね?

2013-12-09 21:00:49
ROCA @rocaz

多分把握した。つまり大垣氏はプリペアドステートメントのために変数にSQL文を格納してそこがプレースホルダを使用しているとしても「任意の変数」を差し込めると考えた。普通はそんなことをしないから「静的SQL」パターンは安全になるのだが、SQLが変数格納故にそう勘違いしたのだろう

2013-12-09 21:07:44
TK @tkitamura

このプリペアドステートメントは出来そこないだ。明日、もう一度来てください。本物のエスケープ処理をお見せしますよ。

2013-12-09 21:08:33
ROCA @rocaz

動的にSQLを変数に格納して組み立てても外部からの変数を混ぜることと同じ事と考えたのだ。これが間違いの元。そもそもやってはいけない「正しい静的SQLの発行の仕方」なのだが彼はこれを理解していなかった。故に「いずれにせよ安全にはできない、エスケープはどうしても必要だ」となったのでは

2013-12-09 21:10:48
ROCA @rocaz

と考えると徳丸さんとのすれ違いや、最近の迷走も良く分かる。 以上が僕の結論です。

2013-12-09 21:11:43
TK @tkitamura

老害もいいところだな。近くにあんなのがいなくて良かった。

2013-12-09 21:16:42
パトラッシュ@中間管理職 @patorash

大垣さんの趣旨は、なんでプリペアドクエリを使うか、その理由を一番最初に知っておくべきで、妄信的にプリペアドクエリを使えばそれでいいということではないと言ってるだけだと思うんだけれど。 @yohgaki こういうことじゃないんですかね?

2013-12-10 13:40:37
前へ 1 ・・ 3 4 次へ