- PR -

AC等の入力対応

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-12-13 21:03
 「入力→(入力チェック)→確認→登録」となっていると思います。では、この流れが「入力→(入力チェック)→確認→ソース表示→保存→改変→ファイル表示→登録」となったら、どうしますか?もちろん、登録の前に「入力チェック」を入れれば問題ないですけど。


 それと、現在発生している問題については、HttpServerUtility.HtmlDecodeメソッドでデコードしたものを登録すればいいでしょう。

_________________
ミキ
常連さん
会議室デビュー日: 2004/11/12
投稿数: 34
投稿日時: 2004-12-13 21:28
引用:

では、この流れが「入力→(入力チェック)→確認→ソース表示→保存→改変→ファイル表示→登録」となったら、どうしますか?もちろん、登録の前に「入力チェック」を入れれば問題ないですけど。



登録の前に入力チェックはしています。

「入力→(入力チェック)→確認→ソース表示→保存→改変→ファイル表示→登録」
とはどのような流れなのでしょうか?
「ソース表示」「保存/登録」「改変」「ファイル表示」
の部分が良く分かりません。
すみません・・・

引用:

 それと、現在発生している問題については、HttpServerUtility.HtmlDecodeメソッドでデコードしたものを登録すればいいでしょう。



Server.HtmlDecodeで登録することができました。
ありがとうございます。

[ メッセージ編集済み 編集者: ミキ 編集日時 2004-12-13 21:34 ]
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-12-14 21:16
引用:

ミキさんの書き込み(2004-12-13 21:28)より:

「入力→(入力チェック)→確認→ソース表示→保存→改変→ファイル表示→登録」
とはどのような流れなのでしょうか?
「ソース表示」「保存/登録」「改変」「ファイル表示」
の部分が良く分かりません。


 ブラウザで、目的のページにアクセスします(入力の前)。項目を入力し、「確認」のための画面を出します。ここでブラウザ上で右クリックして、「ソースを表示」を選択します。HTMLのソースが、デフォルトではノートパッドで表示されますから、それを「名前を付けて保存」します。そして、表示されているものを変えてしまいます。保存したファイルを、エクスプローラからブラウザにドラッグ&ドロップして表示します。このとき、ブラウザを閉じていなければ、セッション情報は保持されたままになります。表示された改竄済「確認」画面を送信します。すると、入力時に行ったはずのチェックをすり抜けたデータを送りつけることが出来ます。


[ メッセージ編集済み 編集者: Jitta 編集日時 2004-12-14 21:25 ]
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-12-14 21:47
unibon です。こんにちわ。

件名にある「AC等」のACってなんのことでしょうか?

と、ずっと気になっていたのですが、この会議室の件名もタグをうまく処理できないためでした。「Sandbox − 練習場 会議室」でも試してみましたが、件名に A<B>C を書くと <B> がタグ扱いになって消えました。みなさますでにご存知のかたも多そうですが...
ミキ
常連さん
会議室デビュー日: 2004/11/12
投稿数: 34
投稿日時: 2004-12-15 13:31
引用:

 ブラウザで、目的のページにアクセスします(入力の前)。項目を入力し、「確認」のための画面を出します。ここでブラウザ上で右クリックして、「ソースを表示」を選択します。HTMLのソースが、デフォルトではノートパッドで表示されますから、それを「名前を付けて保存」します。そして、表示されているものを変えてしまいます。保存したファイルを、エクスプローラからブラウザにドラッグ&ドロップして表示します。このとき、ブラウザを閉じていなければ、セッション情報は保持されたままになります。表示された改竄済「確認」画面を送信します。すると、入力時に行ったはずのチェックをすり抜けたデータを送りつけることが出来ます。



お返事ありがとうございます。

早速やってみました。
Jittaさんの説明通りに処理されてしまいました。(当たり前ですね)

ユーザーにデータを入力してもらいそのデータを登録する場合は
1.確認画面から登録する処理でも入力チェックを行う。
2.確認画面で表示される項目のそれぞれにSession変数を用意し
 DBへの登録はSession変数で保持しているデータを保存する

2通りの方法があると理解してよろしいでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-12-15 22:27
引用:

ミキさんの書き込み(2004-12-15 13:31)より:

ユーザーにデータを入力してもらいそのデータを登録する場合は
1.確認画面から登録する処理でも入力チェックを行う。
2.確認画面で表示される項目のそれぞれにSession変数を用意し
 DBへの登録はSession変数で保持しているデータを保存する


 1では2回チェックしますが、そのチェックするルーチンをどこに書くか、どのように書くかによって、将来修正が発生した場合に修正漏れが発生する可能性があります。これは画面のビハインドコードで行うのではなく、データ用のクラスを作っておいて、その中で行うべきでしょう。

 2では、改竄からは護られますが、場合によってはセッションデータが破棄されることがあります。これも、セッションを書くところ、受けるところの2カ所を変更するのではなく、シリアル化可能なクラスにまとめておくべきでしょう。


> Jittaさんの説明通りに処理されてしまいました。(当たり前ですね)

 私が「こうなる」と書いているからそうなったことを「当たり前」とは思わないでくださいね。たまに嘘書いてます(..;
_________________

スキルアップ/キャリアアップ(JOB@IT)