アカウント名:
パスワード:
やってみろSQLインジェクション等されまくって個人情報ダダ漏れになって簡単に死ねるから
今どきweb設計するときにHTMLタグエスケープしないだの、SQL place holder使わないだのなんてありえないでしょ。だからこそ文字種制限に意味あるのかと感じるんだけど。
実際コードを書いていないシステムエンジニアやセキュリティエンジニアの方は知らないでしょうが、複雑なシステムではプレースホルダは非現実的で、バグの温床になりますよ。
そういう人から、プレースホルダ使えと言われると、現場はいい迷惑です。現実的に考えて 価格.com のスペック検索 [kakaku.com] をプレースホルダで作れますか?
理論上不可能ではありませんが、場合分けでif文等が数十重にもなって、訳がわからないことになり、製作時間も数十倍、バグ発生リスクも数十倍になるでしょうね。
あと、プレースホルダ使えばSQLインジェクションが理論上絶対に発生しないといった出鱈目をまき散らしているセキュリティの専門家も多くいらっしゃいますが、SQLの識別子(テーブル名やフィールド名)はプリペアードクエリではエスケープできない [ohgaki.net] ので、プレースホルダだけでは完璧な対策にはなりませんし、プレースホルダをユーザ入力によって動的に作り上げたら(複雑な処理では必要になる)結局脆弱性は防げないのです。
複雑なシステムの場合には、昔ながらの方式で SQL クエリを組み立てるときにエスケープ処理した方がよかったりします。
おいおい、ユーザにデータベースやテーブル名を指定させるのかww?まず設計を見直そうな。
そもそも、バリデーションとエスケープは別の概念だぞ。
> 価格.com のスペック検索
似たようなもの作ったことあるけどさ、 conds = [] conds << [" COLOR = ?" , foo] conds << [" SIZE = ?" , bar]みたいに投入していって、 conds.map{ |v| v.first ].join(" AND ")と取り出せばいいだけじゃないかな。
素人かよwwwプレースホルダ動的に作れば良いんだよw
逆にどこら辺が複雑だと思ってるの??
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
日本発のオープンソースソフトウェアは42件 -- ある官僚
何で文字種制限しようとするのか (スコア:0)
Re: (スコア:0)
やってみろ
SQLインジェクション等されまくって
個人情報ダダ漏れになって
簡単に死ねるから
Re: (スコア:0)
今どきweb設計するときにHTMLタグエスケープしないだの、SQL place holder使わないだのなんてありえないでしょ。
だからこそ文字種制限に意味あるのかと感じるんだけど。
複雑なシステムではプレースホルダは非現実的 (スコア:0)
実際コードを書いていないシステムエンジニアやセキュリティエンジニアの方は知らないでしょうが、
複雑なシステムではプレースホルダは非現実的で、バグの温床になりますよ。
そういう人から、プレースホルダ使えと言われると、現場はいい迷惑です。
現実的に考えて 価格.com のスペック検索 [kakaku.com] をプレースホルダで作れますか?
理論上不可能ではありませんが、場合分けでif文等が数十重にもなって、訳がわからないことになり、製作時間も数十倍、バグ発生リスクも数十倍になるでしょうね。
あと、プレースホルダ使えばSQLインジェクションが理論上絶対に発生しないといった出鱈目をまき散らしているセキュリティの専門家も多くいらっしゃいますが、
SQLの識別子(テーブル名やフィールド名)はプリペアードクエリではエスケープできない [ohgaki.net] ので、プレースホルダだけでは完璧な対策にはなりませんし、
プレースホルダをユーザ入力によって動的に作り上げたら(複雑な処理では必要になる)結局脆弱性は防げないのです。
複雑なシステムの場合には、昔ながらの方式で SQL クエリを組み立てるときにエスケープ処理した方がよかったりします。
Re: (スコア:0)
おいおい、ユーザにデータベースやテーブル名を指定させるのかww?
まず設計を見直そうな。
そもそも、バリデーションとエスケープは別の概念だぞ。
Re: (スコア:0)
> 価格.com のスペック検索
似たようなもの作ったことあるけどさ、
conds = []
conds << [" COLOR = ?" , foo]
conds << [" SIZE = ?" , bar]
みたいに投入していって、
conds.map{ |v| v.first ].join(" AND ")
と取り出せばいいだけじゃないかな。
Re: (スコア:0)
素人かよwww
プレースホルダ動的に作れば良いんだよw
逆にどこら辺が複雑だと思ってるの??