アカウント名:
パスワード:
これまでのサイト攻撃は、OSの不備やホームページをネットに提供するプログラムのミスなどを突くケースが多かった。今回は、プログラムに欠陥がなくても、コンピューターが正規の命令か悪意のある命令かは判断できない点を突き、命令をそのまま実行させて支配下に置いていた。
入力された値のバリデーションを正しく行うことは、Secureプログラミングの基本だと思うのだが、、、
どういうわけか、入力をサニタイズするという場当たりな対処方法ばかりを宣伝するおかしなセキュリティ屋が多いですが、彼らはプログラミングの素人なんでしょう。ちっちゃいおもちゃCGIプログラムくらいしか作ったことがないとか。
その場にある脆弱なプログラムを取り急ぎ直すのに入力のサニタイズという方法が即効性がある場合もあるのでしょうが、どのように使われるかわからない入力値をどうやって完全にサニタイズするんでしょうか。サニタイズ漏れや、過剰なサニタイズでバグを生んだりしかねないでしょう。
セキュアプログラミングの文脈で「サニタイズ」とかいう言葉を持ち出すセキュリティ屋は信用するな、とまで言ってもいいかもしれない。文脈通りに正しい文字列連結のプログラミングをしていれば、この種の脆弱性は最初から生じないのです。
Yahoo! Blog が入力値をサニタイズしまくって記事投稿時にエラーばっかり吐きまくりやがるので (不正な文字列がどうたらこうたらとか。。。んで、書いた記事全文がフイになる。ブラウザの機能で戻ってもスッカラカンになっちゃうの)、一部ユーザーに反感買いまくりだったりするわけですが、やっぱり彼らもシロートなんだろうなぁ。。。
。。。ん? /. のコメント欄でもそんなエラーに出くわした記憶が。。。??
一回しか使わないー>市区町村合併他は自分で入力する(企業は放置しろ)と言ってるのに? 自分の矛盾に気がつきなさいな。
あんたほんとバカだね。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
プログラムに欠陥がなくても? (スコア:2, すばらしい洞察)
Re:プログラムに欠陥がなくても? (スコア:2, 興味深い)
サニタイズ?何それ (スコア:1)
どういうわけか、入力をサニタイズするという場当たりな対処方法ばかりを宣伝するおかしなセキュリティ屋が多いですが、彼らはプログラミングの素人なんでしょう。ちっちゃいおもちゃCGIプログラムくらいしか作ったことがないとか。
その場にある脆弱なプログラムを取り急ぎ直すのに入力のサニタイズという方法が即効性がある場合もあるのでしょうが、どのように使われるかわからない入力値をどうやって完全にサニタイズするんでしょうか。サニタイズ漏れや、過剰なサニタイズでバグを生んだりしかねないでしょう。
セキュアプログラミングの文脈で「サニタイズ」とかいう言葉を持ち出すセキュリティ屋は信用するな、とまで言ってもいいかもしれない。文脈通りに正しい文字列連結のプログラミングをしていれば、この種の脆弱性は最初から生じないのです。
Re:サニタイズ?何それ (スコア:1)
後学のために正しくはサニタイズとはどういう処理か詳しく教えてください。
Re:サニタイズ?何それ (スコア:0)
Re:サニタイズ?何それ (スコア:1)
英語を使う人間がサニタイズと使うからって、そのまま使うケースがあまりに多過ぎる気がするな。
あっちの人間って、新しい単語を作っても、辞書に載っていなければ通じないから、既存の単語を良く用いる。
それと違い漢字って、漢字自体が意味を持つから、「無害にする」とか「殺菌する」なんて言葉の英語を外来語として使わずに、「特殊文字の無害化」って多くの人が見ても分かり易く表現した方が良いんじゃないの?
「特殊文字をサニタイズしていないから」みたいな「対象」がはっきり分かる表現ならば分かりやすいけど。
CGIのソースを指差し「サニタイズして」なんて言っていると、言われた人はモニターをイソプロピルアルコール等で消毒....
その後、「サニタイズしてくれた?」なんて聞くと「ちゃんとしておきましたよ」なんて....
後日、「しかし結果として“最高の対策”とは呼べない部分はあったと思う」
http://www.itmedia.co.jp/news/articles/0505/25/news086.html
なんていう羽目になるかも。
# だけど「無過失らしい」....
Re:サニタイズ?何それ (スコア:1)
ご指摘ありがとうございます。本当に言葉の意味を理解して使っているのかと、自分で反省中です。
Re:サニタイズ?何それ (スコア:1)
なのでシステムの規模や処理内容などで使い分ければ良いんでないでしょうか。
もちろん、出力時の対処の方がシステムの拡張性は高いと思いますが。
どちらにしても「設計」「規約による縛り」「試験」は大切ですね。
Re:サニタイズ?何それ (スコア:1)
そういう意味ではおっしゃるようなメタ文字のエスケープやディレクトリのチェックを(どの時点でやろうとも)サニタイズと呼んでいいような気がします。言い方の問題かな、と。
しかし、確かにユーザーからの入力値チェックで済ませるというのは場あたり的かもしれないですね。その後どう使われるかがはっきりしてる小さいプログラムしか書かないので、ちょっと気付きませんでした。
それでも単純に「入力値」とか「入って来た値」とか言ったとき、プログラムに入って来た(main()に入って来た?)値なのか、その関数に入って来た値なのかは状況いかんな気もします。関数に入って来た値を利用する前にエスケープ処理などをやらせる関数を、sanitize()とか名付けたり、「入って来た値は使う前にサニタイズしないとね」みたいな言い方はよくします。やはり言い方、名付け方の問題?
名前がついているのは便利 [rubycolor.org]ですしね。
Re:サニタイズ?何それ (スコア:1)
Yahoo! Blog が入力値をサニタイズしまくって記事投稿時にエラーばっかり吐きまくりやがるので (不正な文字列がどうたらこうたらとか。。。んで、書いた記事全文がフイになる。ブラウザの機能で戻ってもスッカラカンになっちゃうの)、一部ユーザーに反感買いまくりだったりするわけですが、やっぱり彼らもシロートなんだろうなぁ。。。
。。。ん? /. のコメント欄でもそんなエラーに出くわした記憶が。。。??
むらちより/あい/をこめて。
Re:サニタイズ?何それ (スコア:1)
セキュリティとは違うのかもしれませんが、データを入力するユーザーが間違える可能性を考慮しないというのはまずいのではないでしょうか。たとえば電話番号の入力を要求しているのにアルファベットが来たら、チェックして正しいデータを入れてもらうようにしないと。
しかし、電話番号を入れるときにハイフンを使うな、というwebをよく見かけるけど、10桁の数字って確認しにくいんだよなあ。ハイフンくらいプログラムの内部で処理してくれればいいのに。
---- 6809
Re:サニタイズ?何それ (スコア:0)
別枠で入力させたくて、なおかつ入力される値が限定できる場合は select にします。
Re:サニタイズ?何それ (スコア:0)
Re:サニタイズ?何それ (スコア:0)
"東京"と入れる人と"東京都"と入れる人と"TOUKYOU"と入れる人。。。
などなど出てきますから。
検索時に東京に住んでる人すべてを検索する場合、入力を制限しないと全部に対応する必要が出てきます。
#どっちがバカか。。そういう情報が必要なサイト作ったことありますか?
Re:サニタイズ?何それ (スコア:0)
企業側では結構必要ですよ。
購買傾向分析、ダイレクトメール等など。。
ユーザー視点、企業視点両方の視点で物事が考えられないあなたがばか。
また、コンボボックスにしてるのを律儀にテキストで保存してると思ってます??
マスター化するのが一般的ですよ。
最近はついでに市区町村も
Re:サニタイズ?何それ (スコア:0)
ややこしい仕様にして工数を稼ぎ、
後々にもメンテでお金を搾り出せる作りにしておくのが
いいってことではないかと邪推しました。
#作る側の視点は考慮してないのでAC
Re:サニタイズ?何それ (スコア:0)
統計の取り方と、それ以外に企業の目的によるってことです。
また、客先宛に請求書とか出力する必要があるところでは、市区町村合併による町名変更は放置できるわけがない。
合併した所にいるお客さんは全部自分で変更しろと?
表記の揺れ全部調べて全部変更しろと?
だから、貴方の考え方で業務がまわりますか??
リストにしている所ではコードだけで普通企業側が一括変更しま
Re:サニタイズ?何それ (スコア:0)
そんなのになる県があるの?どこ?
しかも「どのへんにあるかもわからない」ってどういう事?ソートされてないコンボなんて、作る側からしても考えられないんだけど。
>そんなものは放置しておくのが正解。
それこそユーザの顰蹙を買いそうだな。コードで管理していなかったとしても標準の表記だけ
Re:サニタイズ?何それ (スコア:0)
>
>そんなのになる県があるの?どこ?
東京都?
>しかも「どのへんにあるかもわからない」ってどういう事?
>ソートされてないコンボなんて、
ソートされてても面倒ですね。スクロールしちゃうし。<br>
都道府県は五十音順じゃないし。
Re:サニタイズ?何それ (スコア:0)
それはあなたの使ってるサイトがわるいだけ。
五十音にしてるサイトもある。
五十音で無いばあい、大体北から(or 地方毎に)並べてあるとおもいますが。。
プログラマもテストする時どこにあるかないと困るんでなにか規則はつくります。
Re:サニタイズ?何それ (スコア:0)
たく、こういう何も考えないあげ足とりな馬鹿は。。
こういうのは大体、客先(企業)の要望によりますが、
都道府県は北からが一番多く、2番目に五十音です。
#但し、統計ではなく私が使用したサイト、及び関与した業務アプリでの感覚です。
都道府県を北から並べた所をふくめ、市区町村は大抵が五十音です。
何もソートを作らないサイトは流石に馬鹿ですが。
#全体規則と一部適応の規則(ソ-ト順)も区別のつかない馬鹿か。。
#740728、#741900は自分が不便と思ったサイトをよく検証してみた方がいい。
単
Re:サニタイズ?何それ (スコア:0)
文字列は万人が納得するI/Fではない。
文字列で入力させると、
貴方みたいな人が入力を間違えてるくせに届かないといって文句を言ってくる。
リスト、コンボは入力間違い防止の意味もあるんですよ。
一回しか使わないー>市区町村合併他は自分で入力する(企業は放置しろ)と言ってるのに?
自分の矛盾に気がつきなさいな。
作る方だってフリーフォーマットで放置のほうが楽なんですよ。
貴方みたいな人が自分の入力間違いに気がつかず未着で企業に文句を言ってくるんでしょうね。。。
Re:サニタイズ?何それ (スコア:0)
>>だからー文字列で入れさせてくれよ。糞が。
>文字列は万人が納得するI/Fではない。
どやったらこういう返事が出来るんだw
「万人」?本当にどっから出たんだこの台詞。
Re:サニタイズ?何それ (スコア:0)
都道府県の入力ミスで届かなくなるって、どんな配送業者なん?(w
Re:サニタイズ?何それ (スコア:0)
あんたほんとバカだね。
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)
Re:サニタイズ?何それ (スコア:0)