【解決方法】URLのパラメータを非表示にする方法


URL パラメータを非表示にしたい。
たとえば、/default.aspx?id=23
ここでは、パラメーター ID を非表示にして、ユーザーが URL でこのパラメーターを変更できないようにします。
または、ユーザーが id=23 を 27 に変更すると、同じページが表示されます。つまり、id=23 のページは、URL の ID を変更するために変更できませんでした。 これに対する解決策は何ですか?

解決策 2

(1)フォームを使用して情報を投稿します。 これには、ソース ページに追加のコードが必要になる場合がありますが、ターゲット ページのロジックを変更する必要はありません (単に Request.QueryString を Request.Form に変更するだけです)。 POST をいじることは不可能ではありませんが、QueryString パラメーターをいじるよりも魅力的でないことは確かです。

(2) セッション変数を使用して、ページからページへ情報を運ぶ。 セッション変数のチェックを考慮する必要があるため、(1) に比べてかなりの労力が必要になる可能性があります (たとえば、常に状態をチェックしている場合、ユーザーは[戻る]ボタンと[進む]ボタンを使用してナビゲートするのに苦労する可能性があります)。 . また、セッション Cookie が有効になっていない場合にも対処する必要があります (この解決策は、これらの人々には機能しません)。

(3)実際のデータの代わりに、「エンコードされた」または無意味な情報を QueryString で使用します。 これには、すべてのページ送信のいずれかの端でエンコードおよびデコード スキームを作成する作業が必要になります。 確かに、ユーザーはスキームを実験してリバース エンジニアリングすることはできますが、既存の QueryString に意味のある変更をすぐに思いつく可能性は低くなります。

(4)フレームセットを使用する。 このアプローチは非常に一般的ですが、私は本当にお勧めしません。 情報を変更しにくくするのではなく、非表示にしようとしている場合でも、ユーザーは個々のフレームを右クリックしてプロパティをクリックし、QueryString を介して渡されたすべての情報を取得できます。

(5) Server.Transfer を使用して、コントロールを 2 番目のページに移動します。このページは、最初のページに渡された QueryString パラメーターに引き続きアクセスできます (URL は短時間しか表示されませんでした)。

QueryStrings から移行する際の問題の 1 つは、サイトが使いにくくなることです。 (3) 以外の方法に依存している場合、ユーザーは現在のページをそのままブックマークすることはできません… URL を単に入力した場合と同様の方法でページをブックマークすることしかできません。 (ページの作成方法によっては、機能しない場合もあります)。 したがって、これは、情報の実際の機密性と、ユーザビリティとセキュリティのバランスをどこまでとるかを決定する際に心に留めておくべきことの 1 つにすぎません。

これらのページもチェックしてください。
http://www.codeproject.com/aspnet/urlrewriter.asp[^]
http://weblogs.asp.net/scottgu/archive/2007/02/26/tip-trick-url-rewriting-with-asp-net.aspx[^]

解決策 3

URL の一部を非表示にすることは、非常に疑わしいものです。 これは、フィッシング攻撃で使用される種類のものです。

質問に表示された URL を見ると、ID は使用されておらず、名前付きページが使用されています。 これは、はるかに優れた方法です。

解決策 1

0) GUID 文字列を作成し、文字列内の既知の位置に値を配置できます。

1)クエリ文字列を実際に非表示にできると思います(アドレスバーに表示しないでください)-Googleはあなたの友達です。

2) google “asp.net シングル サインオン”

コメント

タイトルとURLをコピーしました