アカウント名:
パスワード:
これまでのサイト攻撃は、OSの不備やホームページをネットに提供するプログラムのミスなどを突くケースが多かった。今回は、プログラムに欠陥がなくても、コンピューターが正規の命令か悪意のある命令かは判断できない点を突き、命令をそのまま実行させて支配下に置いていた。
入力された値のバリデーションを正しく行うことは、Secureプログラミングの基本だと思うのだが、、、
違いますよ。セキュアプログラミングの本当の基本は、入力の値がどうこうというよりも、出力部分、つまり値を使用する部分(SQLならSQL文を文字列連結して作成する部分)で、メタ文字をエスケープすること(ないし制限チェックをすること(たとえば変数をパス名として使用する部分では、使用するところで所定のディレクトリ内かをチェックする。けっして入力値のチェックではない。))です。
どういうわけか、入力をサニタイズするという場当た
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
プログラムに欠陥がなくても? (スコア:2, すばらしい洞察)
Re:プログラムに欠陥がなくても? (スコア:2, 興味深い)
サニタイズ?何それ (スコア:1)
違いますよ。セキュアプログラミングの本当の基本は、入力の値がどうこうというよりも、出力部分、つまり値を使用する部分(SQLならSQL文を文字列連結して作成する部分)で、メタ文字をエスケープすること(ないし制限チェックをすること(たとえば変数をパス名として使用する部分では、使用するところで所定のディレクトリ内かをチェックする。けっして入力値のチェックではない。))です。
どういうわけか、入力をサニタイズするという場当た
Re:サニタイズ?何それ (スコア:0)
ふつーに考えればエスケープ処理はあんたのおっしゃる「出力」の際にやるわけで、サニタイズったらまずそのことでしょう。そうじゃなきゃその出力を行うコード部分を他に転用したときに危ない。
従って「入力をサニタイズしなさい」というときに、馬鹿正直に値をGetしたコード部分で「サニタイズ」をやるやつぁいないと思いますよ。
なにしろご指摘のように、出力がSQLなのかHTMLなのか、はたまた別のものなのかでエスケープなんて全部変わってくるわけだから、やりようがない。場当たりも糞も、実効性なんてありませんよ。なんか「サニタイズ」という言葉を振り回すコンサルたん系のヤツでもいて迷惑を被りましたか? だったら同情しないでもないですがね。
#当方、「サニタイズ」という言葉を口にする「おかしなセキュリティ屋」ですがその程度の単純なことは理解してますよ :-)
Re:サニタイズ?何それ (スコア:1)
#740324 さんの書くサニタイジングのコードというのは、どんな文なんでしょうか? サニタイズというくらいですから、文字列を削るコードなんですよね。
Re:サニタイズ?何それ (スコア:0)
単にサニタイズ用の文字列処理かますだけの話でしょう。難しそうに考える必要はない。
例えばPHPでXSSを防ぐためにHTML出力を実体参照にしたければ、htmlentities()とかの類の脳死レベルの関数が用意されてますな。
まあそんなもの用意されてなくても、出力先に応じてエス
Re:サニタイズ?何それ (スコア:0)
ぐぐる様での検索結果 [google.co.jp]
いやまあ、みんな間違って使ってるっておっしゃるのかもしれませんけど……。
Re:サニタイズ?何それ (スコア:0)
私もそう思ってますが。
サニタイズ=入力の無毒化、チェック。
入力、出力時に文字列の値をチェック、編集することでsqlインジェクション、コマンドインジェクション、XSS等の対策を行う方法および行為。
と思ってたんですが。。
違うんですか?エロイ人。
Re:サニタイズ?何それ (スコア:0)
それでいいんじゃない?
入力は大抵の場合何か別のものへの出力になるし、出力も大抵の場合何か別のものへの入力になる。
もちろんカタチを変えたりはするけど。
「何からの」「何への」を省略してやれ入力だ出力だ言っても仕方あるまいに、と思う。
Re:サニタイズ?何それ (スコア:0)
出力って、どの部分をさしていってます?
もし、画面および帳票をさして行ってるならアウト。
SQLに変数を与えるところを指してるならok。
動的SQLのすべてがPrepareで書ければいいが、でない場合文字列に
;DELE
Re:サニタイズ?何それ (スコア:0)