2

フレンドリな URL を持つことは、一般的には良いことです。ただし、それが悪い考えのように思える場合もあります。あなたの経験則は何ですか?

たとえば、登録成功ページを表示したい状況を考えてみましょう。根底にあるすべてのロジックを同じにしたい。ただし、登録方法によっては、特定の種類のロールで登録した人に別のメッセージを表示したい場合があります。

「ハッキング可能な」 (リンクで説明されている) URLのいくつかのすぐに使える例を次に示します。

URL を見つけられないようにしたいので、これらはすべて悪いように思えます。一方で、成功メッセージを少し変更するためだけに、もっと複雑なことをするのは嫌いです。

これをどのように処理しますか?

4

10 に答える 10

24

URL の難読化はセキュリティ対策ではないことに注意してください。外部からの入力を決して信頼してはなりません。フィルタリング、サニタイズ、および制限的なロジックの実装です。難読化スキームがどれほど巧妙であると信じていても、人々ははるかに複雑なセキュリティ スキームを比較的簡単にクラックしています。

一般的な経験則として、意図的に URL を難読化する正当な理由はありません。URL を使用して読み取り操作 (リソースへのパス) を伝達します。POST 要求を使用して、書き込み操作 (データの追加/変更) を通信します。ユーザーが URL を介して何かを実行できない場合は、サーバー側で要求メソッドを介して規制する必要があります。

于 2008-12-04T21:14:08.747 に答える
4

データを POST するか、それがオプションでない場合は、セッション変数に値を設定してから、成功ページで値を読み取ることができます。セッションを使用するコードの実際の複雑さは、クエリ文字列を使用する場合とほぼ同じです。

于 2008-12-04T21:11:05.837 に答える
2

別のメッセージを表示しているだけなので、これがセキュリティ上の問題ではないと思われる場合は、ハッキング可能かどうかを気にする必要はありません。

ほとんどのユーザーは、URL が編集可能であることに気付かないでしょう。「エリート ハッカー」は、少し異なるメッセージを受け取ります。

「難読化する必要がありますか?」に対する一般的な回答 はありません。それがセキュリティのためである場合、地獄ではありません。そうでなければ、なぜ難読化するのですか? ほとんどの場合、あなたは時間を無駄にしています。

于 2008-12-04T21:27:23.730 に答える
1

URL はコンテンツを一意に参照するためのものです。コンテンツが対話のいくつかのステップを含むプロセスの結果である場合、URL はプロセスを再現しないため、これらのコンテンツは実際には URL を持つことはできません。

それらを RegistrationSuccess.aspx に転送し、セッションの状態に基づいてコンテンツを表示します。

誰かが適切なセッション状態を持たずにその URL にアクセスした場合、何も表示されていないことを説明するフレンドリーなメッセージを 5 秒間見てから、フロント ページに転送します。

さらに良い選択は、彼らがおそらくお気に入りにしたい MyRegistration.aspx に転送することです。登録プロセスから、登録が正常に完了したことを説明するボックスが表示される場合があります。登録プロセスから来ていない場合、このボックスは表示されません。ページの残りの部分は、そのユーザーの以前のすべての登録プロセスの概要です。

于 2008-12-04T22:21:45.927 に答える
0

投稿投稿で?

URL に情報を含めたくない場合は、URL に含めないでください。

いつでも簡単にできるわけではありません...

于 2008-12-04T21:04:30.263 に答える
0

検索エンジンに簡単にインデックスを付けたいページは、URL ルーティングを使用することをお勧めします。これには、トラフィックの多いページが含まれます。

ユーザーが月または年に数回しかアクセスしない他のページについては、それらを通常の URL のままにしておくことができます。

于 2008-12-04T21:06:23.490 に答える
0

プライベート/個人化されたデータに絶対に URL を使用する必要がある場合は、サーバー上でランダムな一意の識別子を生成し、それを URL で使用する方がよいでしょう。リンクをクリックする必要がある確認メールのようなものです。

それ以外の場合、URL にデータを含めない方法が他にある場合は、そうすべきではありません。登録が成功した場合は、登録したばかりの人が現在のセッションに参加している必要があります。または、カスタマイズされたページが表示される前にログインする必要があります。

于 2008-12-04T21:10:18.413 に答える
0

「登録成功」メッセージを最後のステップにして、ページを変更しないのはなぜですか?

これを行うには、 Ajax またはServer.Transfer()を使用できます。

于 2008-12-04T21:10:35.680 に答える
0

参照 URL のホワイトリストからチェックして、別の URL を入力できないようにすることができました。これにより、通行人からの明らかな「ハッキング」を排除できる可能性があります。

(明らかに、オタクならこれを回避できます。)

于 2008-12-04T21:20:23.697 に答える
-2

クエリ文字列アイテムに何らかのチェックサムまたはハッシュを作成できるため、URL をいじると、チェックサムが失敗し、メイン ページに追い出されます。

于 2008-12-04T21:14:41.150 に答える