4

公共の場所にあるコンピューターで認証なしで使用できるアプリケーションがあります。これは、ユーザーが結婚許可証を申請できるシンプルな 4 ページの申請書です。一部のオフィスには、申請者が事務員に進む前に自分の情報を記入できる公共のコンピューター キオスクがあります。また、オフィスに行く前に自宅で行うこともできます。ユーザーが以前のユーザーの入力にアクセスできないようにするには、どのような考慮事項を行う必要がありますか? 一部のフォーム データには、生年月日、社会保障番号、母の旧姓などの機密情報が含まれます。

1.オートコンプリートを無効にする

これまでのところ、マスター ページのフォーム タグで autocomplete=false を設定しました。

<form id="frmMain" runat="server" autocomplete="false">

2.ページキャッシュを無効にする

IE と FF ではページ キャッシュを無効にすることもできましたが、Safari と Chrome ではできません。裏技知ってる人いますか?戻るボタンを押すと、Safari と Chrome でフォームに入力されたデータが表示されます。

// Disables page-caching in IE
Response.Cache.SetAllowResponseInBrowserHistory(false);
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetNoStore();
Response.Expires = 0;

// HACK: fixes Firefoxes cache issue
Response.AddHeader("ETag", new Random().Next(1111111, 9999999).ToString());

3. セッションを管理する

また、n 分後にセッションを強制終了するタイマーを各ページに実装しました。セッションは、ページが以前に入力されたデータをロードするために使用する現在のアプリケーション ID を保持します。ボタンをクリックすることで、より多くの時間を得ることができます。タイマーが切れると、メイン ページにリダイレクトされ、Page_Load でセッションを強制終了します。ユーザーが「完了/送信」ボタンをクリックしたときにも、このページにリダイレクトします。セッションが強制終了されると、URL でページに移動しても、以前のアプリケーションは読み込まれません。新品扱いとなります。

protected void Page_Load(object sender, EventArgs e)
{
   if (!IsPostBack)
     Session.Abandon();
}

4.他に何をすればいいですか?

Your awesome suggestions/tips here
4

4 に答える 4

1

これはキオスク アプリであるため、何もキャッシュしないという要求を受け入れるようにブラウザーが構成されていることを確認する必要があります。

前回、サーバー側のキャッシュなしヘッダーの有効性を調査したとき、カスタマイズされた、バグのある、または一般的でないブラウザーを使用しているブラウザーは、ドキュメントをキャッシュしないという要求を受け入れない可能性があることに気付きました。

一部のページ (セッション終了ページなど) に JavaScript の戻るボタン ブレーカーを追加し、履歴ナビゲーションの抑止力を追加することもできますが、すべてのページではありません。

于 2010-08-02T21:02:28.013 に答える
0

JavaScript を使用します。各フォームのイベントをキャプチャして防止しsubmit、データを取得して ajax 経由で送信し、フォームのネイティブreset()メソッドを使用する必要があります。そこから、ajax の結果に応じて、別の場所に移動したり、検証エラーを表示したりできます。jQueryを使えば簡単です。

于 2012-04-13T04:50:16.513 に答える
0

ここにあります:公開 Web サイトを構築する前に開発者が知っておくべきこと

于 2010-08-02T20:25:43.690 に答える
0

あなたの考えは正しいと思います。「終了/送信」でセッションを強制終了することは、私が推奨するものです。それでもowasp トップ 10を読み、通常の脆弱性を念頭に置いてください。

1) HTTPS を使用していることを確認します。

2) アプリケーションをロールアウトする前に、必ずアプリケーションの脆弱性をテストしてください。Wapiti (無料)、Acunetix ($)、または NTOSpider ( $$$$)を使用することをお勧めします。

3) サーバーを最新の状態に保ち、OpenVASを実行してサーバーが安全であることを確認してください。

于 2010-08-02T20:30:31.603 に答える