アカウント名:
パスワード:
二十年ぐらい前からSQLインジェクションやhtmlでのscripインジェクションなどが話題になってて入力文字列をそのままシステムで扱うのは禁止って初歩的な常識ができている。それなのにいまだにたびたびこういう問題が、しかも大企業のシステムで出てくるのは不思議でならない。わざと穴を作っていつでも侵入できるようにしてるとか陰謀論を考えたくなる。
プログラマなら誰でも知ってることだが、SQLインジェクションやバッファオーバーフローが厄介なのは、それがあることは知っていても、完全にバグのないプログラムを作るのは難しいことだぞ。文字化けやメモリリークなんかもそうかな。#だからGCやライブラリやGCに丸投げするのだが、#汎用ライブラリが使えない領域だとそうもいかん。
「入力チェックさえすれば完璧」「注意すればバグは出ない」「ルールを作っておけば必ず守られる」「プログラマは完璧超人」なんて思ってるのは素人だけだぞ。
それ以前に、元の設計の筋が悪いことも多いけどね。むしろ「入力チェックさえすれば~」と思ってる人の方が、そういう設計にしがちなんだろうな。それを筋が悪いと思ってないから。
玄人は6ヶ月代金だけ取って放置を正しいと判断するってことですか?
SQLインジェクションに限っていえば簡単に100%防げるよ。だってSQL実行するときにデータを変数渡しすればいいだけなんだから。
過去にはDBとのコネクタに脆弱性があって、プレースホルダー使ってもSQLインジェクションされるパターンも有ったので要注意ですね。
JVN#59748723MySQL Connector/J における SQL インジェクションの脆弱性https://jvn.jp/jp/JVN59748723/ [jvn.jp]
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
どうしてこんな問題が起きるんだろう (スコア:0)
二十年ぐらい前からSQLインジェクションやhtmlでのscripインジェクションなどが話題になってて入力文字列をそのままシステムで扱うのは禁止って初歩的な常識ができている。
それなのにいまだにたびたびこういう問題が、しかも大企業のシステムで出てくるのは不思議でならない。
わざと穴を作っていつでも侵入できるようにしてるとか陰謀論を考えたくなる。
Re:どうしてこんな問題が起きるんだろう (スコア:0)
プログラマなら誰でも知ってることだが、SQLインジェクションや
バッファオーバーフローが厄介なのは、それがあることは知っていても、
完全にバグのないプログラムを作るのは難しいことだぞ。文字化けやメモリ
リークなんかもそうかな。
#だからGCやライブラリやGCに丸投げするのだが、
#汎用ライブラリが使えない領域だとそうもいかん。
「入力チェックさえすれば完璧」「注意すればバグは出ない」
「ルールを作っておけば必ず守られる」「プログラマは完璧超人」
なんて思ってるのは素人だけだぞ。
それ以前に、元の設計の筋が悪いことも多いけどね。
むしろ「入力チェックさえすれば~」と思ってる人の方が、そういう
設計にしがちなんだろうな。それを筋が悪いと思ってないから。
Re: (スコア:0)
玄人は6ヶ月代金だけ取って放置を正しいと判断するってことですか?
Re: (スコア:0)
SQLインジェクションに限っていえば簡単に100%防げるよ。
だってSQL実行するときにデータを変数渡しすればいいだけなんだから。
Re: (スコア:0)
過去にはDBとのコネクタに脆弱性があって、プレースホルダー使ってもSQLインジェクションされるパターンも有ったので要注意ですね。
JVN#59748723
MySQL Connector/J における SQL インジェクションの脆弱性
https://jvn.jp/jp/JVN59748723/ [jvn.jp]
Re:どうしてこんな問題が起きるんだろう (スコア:1)
client-side Prepared Statementというクライアント側でSQL文を組み立てる実装のバグで本来のプレースホルダーではありません。
なのでまともなプレースホルダーを使用するのであればSQLインジェクションは防げます。