【質問】ASP.NETスレ Part7【雑談】 (806レス)
1-

328
(2): 2015/09/11(金)11:18 ID:??? AAS
>>323
Textbox.Textはたしか勝手にエンコードするから大丈夫
でも全ての表示できる内容がエンコードされるわけじゃない
たしかLabel.Textは生HTMLで出力する
適切にエンコードした出力すれば大丈夫なんだが、それが難しい
せめて危険かどうかの判断ができるようになるまで、保険的にバリデート外すなって言ってる

まあ、あれ、SQL系のインジェクションにはほとんど無力なんだがな
329
(1): 2015/09/11(金)11:21 ID:??? AAS
>>328
>SQL系のインジェクション

この対策は、parameterオブジェクトのaddメソッドで、parameterを追加する方法で、
回避可能だと聞いたことがあります。もちろん、ストアドプロシジャでしか使えないけど。
330: 2015/09/11(金)11:23 ID:??? AAS
>>328
Labelも含めて、ブラウザに出力するコントロールのすべてにおいて、
デフォで、htmlEcodeをかけておいてほしかったな。

必要なら、意識して自分で外せるようにしておいてもらったほうが良かった。
331
(1): 2015/09/11(金)11:23 ID:??? AAS
>>326
>net側のセキュリティーホールで、意図しないところで攻撃が実現されてしまうことはあるんでしょうかね。
可能性としては当然ある
>フレームワーク上の欠陥で、セキュリティーホールが生じたことってあったのかなあ。
いくらでもある
何のためにマイクロソフトがいっぱいアップデートパッチ出してると思ってるんだ

少なくともお前や俺がミスってセキュリティホール作る方が
フレームワークの欠陥で穴が見つかるよりよっぽど可能性が高いから心配するな
332: 2015/09/11(金)11:24 ID:??? AAS
>>327
その通りです。すみません、先に>>322にレスしていました。
333: 2015/09/11(金)11:24 ID:??? AAS
>>327
丁寧に、ありがとうございます。
334
(3): 2015/09/11(金)11:28 ID:??? AAS
>>331
やはりあったんだ。
せっかくしっかり作りこんでいても、土台でセキュリティーホールがあったら、
どうしようもないな。

今、一つ気になっているのは、クエリストリングの処理。
間違えて、URLとクエリストリングの文字列に、さらにクエリストリングを連結させてしまったら、
ランタイムエラーが出ずに、「,」が復元先のテキストボックスに表示されてしまったよ。
(同名のクエリストリングが重なった状態になったのだと思う。)

クエリストリングも公開WEBアプリには使わないほうがいいと思った。
335
(1): 2015/09/11(金)11:29 ID:??? AAS
>>329
ストアドじゃなくてもパラメタは使える
まあ、SQLインジェクションに対してはパラメタ使えってのは鉄則

なんだが、ついつい動的にSQL書いちまうんだよなぁ
336: 2015/09/11(金)11:31 ID:??? AAS
>>325
ありがとうございます。
csprojの編集ということもできるなんて、初めて知ったので、勉強になりました。
337: 2015/09/11(金)11:34 ID:??? AAS
>>335
そうなんですか。Sql server系だったら、@パラメーターを、sql文字列に埋め込んでおいて、
同じ要領で、パラメーターオブジェクトをコマンドオブジェクトに組み込んで、投げることができるんですね。

しかし、sql動的作成だと、パラメーター以外に、インジェクションされる危険が多々ありますよね。
日本語しか入力させないようにしたら少しはましになるのかな。
338
(1): 2015/09/11(金)11:34 ID:??? AAS
>>334
それはお前の間違いであって、フレームワークの穴じゃないだろ

そこでクエリストリングの仕様と、起こった事の詳細を解明しようと思わないなら
プログラミングやめた方がいいよ、マジで
339
(1): 2015/09/11(金)11:40 ID:??? AAS
>>338
ポストバックされたページから、urlをつかんだら、すでにクエリストリングが含まれているんですよね。
そこからクエリストリングを切断したうえで、新たなクエリストリングを連結させる必要があったんですよ。
ここまでが、MS提供のライブラリを使うプログラマの範囲かなと思うんです。

しかし、なぜ、同名のクエリストリングが重なったら、おかしい文字列が取得されるのかは、
ライブラリ内の話になるので、追及できません。それとも、逆アセンブリするんでしょうか。

同じ問題が生じないように、対策を立てることくらいはできますけどね。
値を取得する前に、クエリストリングのキーがダブっていないか、検査するとか。
例外を投げてほしかったな。
340
(2): 2015/09/11(金)12:01 ID:??? AAS
>>339
>なぜ、同名のクエリストリングが重なったら、おかしい文字列が取得されるのか
コード見ないとわからんが、まあ多分、お前の取得の仕方が悪いだけ

お前が勝手に同名のクエリ文字列は存在しないと思いこんでるだけで
それ前提で作れば、当然おかしな動作するわな

HttpRequest.QueryStringの戻りはNameValueCollection
NameValueCollection.Itemの戻りは、指定したキーに関連付けられた値のコンマ区切りのリストを格納する String

おかしな文字列でもなんでもなく正しく動いてるようにみえるな
341
(3): 2015/09/11(金)22:05 ID:??? AAS
>>340
キーの話だけじゃないんだ。
?もダブっている。

外部リンク:honyarara.com?key1=asdf&key2=werf?key1=fafag&key2=greasge

こんな感じで、?からダブっているイメージ。

こんなurlでpageへポストバックして、querystringのコレクションを読み出すけど、
例外が発生しないわけなんだよ。

もちろん、querystringを作成する処理にバグを発生させてしまっていたので、
修正したのだけれど。
342: 2015/09/11(金)22:08 ID:??? AAS
>>341
honyararaって、実在サイトだった!
私とは関係ないので、あしからず。
343
(2): 2015/09/11(金)23:35 ID:??? AAS
>>341
例外を発生させるべき理由なんてないけど?

おかしいのはお前の理解
まさに、お前の思った通りに動かなくてもお前がプログラムした通り動いてる
344
(2): 2015/09/12(土)03:29 ID:??? AAS
初歩的な質問なのですが、
VSのソリューションMyHomePageというのを作って
Default.aspx
sub1/Default1.aspx
sub2/Default2.aspx
のようなディレクトリ構成で、それを発行して
www.example.com/MyHomePage/   (1)
に配置しました。その時
www.example.com
にアクセスした場合に、
省7
345
(3): 2015/09/12(土)06:31 ID:??? AAS
>>343
感情的にならずに、何がどうおかしいのか、論破すべきだよ
346: 2015/09/12(土)10:33 ID:??? AAS
>>344
IISの設定をみなおしあ

>>341
なんで「?」が二重にあるの
347
(1): 2015/09/12(土)10:47 ID:??? AAS
>>345
横からだけど・・・

HttpRequest.QueryString
外部リンク[aspx]:msdn.microsoft.com
NameValueCollection
外部リンク[aspx]:msdn.microsoft.com

そんな例外は仕様に書かれていないし、「例外が発生しない」ものはしない。
無い物ねだりをしているのは >>345 であって、その例外が発生すべき理由を論理的に説明できていない。
(>>334の内容がASP.NETの挙動として何がおかしいのか分からない。アプリケーション的に問題のあるPOST内容をエスケープできてないだけ)

ASP.NETの仕様に提案があればMSは受け付けているし、そっちでどうぞ。
省2
1-
あと 459 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.009s