1

NewYorkTimesのこのページをチェックしてください。

http://homedelivery.nytimes.com/HDS/learnMorePopUp.do ?mode=common.learnMorePopUp
&productId=NDS
&prodRate=7.40

prodRateパラメータを手動で変更すると、ページが更新されたことに驚きました。

  • 導入サブスクリプション率。
  • 通常のサブスクリプション料金。

自分で試してみてください!今、私はあまりWeb開発を行っていませんが、これはおそらく起こらないはずです。だから私は疑問に思っています:

  • どのような実装がこの動作を引き起こしますか?
  • このような機密パラメータをエンドユーザーから隠すために、ページをどのように変更しますか?
4

5 に答える 5

3

おそらく、表示目的でクエリ文字列から値を読み取っているだけです。実際の注文処理がその値に基づいているのではなく、製品IDを使用したルックアップに基づいているのではないかと私は強く疑っています(というより、本当に期待しています)。

于 2009-07-29T19:32:46.343 に答える
1

さて、実際に注文してみましたか?バックエンドの入力を検証する場合があります。

他のオプションに関しては、彼らは情報を投稿するか、情報をクッキーに入れることを検討することができました。どちらも正確にばかげた証拠ではありません。投稿のある新しいウィンドウを取得することはできず、ユーザーはCookieをオフにすることができます。

于 2009-07-29T19:33:44.687 に答える
1

そのページから注文できないので、ここにセキュリティホールはありません。ええ、それは安っぽいですが、実際の注文フローがあまりにも不十分に構築されていれば、私ははるかに心配します。レートを1か所で更新し、値を渡すだけで簡単にできるので、どのように発生したかを確認できます。

ほぼ同じことを行う評価ページがいくつかあります。それらは実際の購入フローに接続されていないため、パラメーターは問題ありません。クライアントがURLを編集して混乱させたい場合は、そうです...実際の注文フローはすべてデータベース駆動型であり、ユーザーの編集は決して信頼されません。

于 2009-07-29T19:35:25.480 に答える
1

私はこのようなあらゆる種類の悪い習慣を見つけました。WebサイトがSQLクエリ全体をクエリ文字列で渡し、それが実行されるのを見てきました。また、クエリ文字列で価格を渡したオンラインショップを見つけたことも覚えています。1つを負の値に変更しましたが、確かに、チェックアウト時の価格はマイナスでした。しかし、私はこれ以上先に進みませんでした-技術的には詐欺であり、危険を冒す価値はありません。

于 2009-07-29T19:37:31.667 に答える
1

私が思いつくことができる唯一の答えはあまり明るくないので、あなたはあなたの質問を言い換えたいかもしれません:

Q:どのような実装がこの動作を引き起こしますか?
A:ユーザー入力が内部の信頼できる動作を制御できるもの。「なぜ誰かがこれをするのか」と尋ねるなら、私は通常それを誤解と見なしていました。コードの作成者は通常、ユーザーが(a)値を制御したり、(b)値が存在することを発見したりできることに気づいていません。ほとんどの場合、これはリダイレクトとして実装されています。ボタンをクリックすると、サーバーが金額を決定し、値を維持する新しいページにブラウザをリダイレクトします。

Q:このような機密パラメータをエンドユーザーから隠すために、ページをどのように変更しますか?
A:エンドユーザーが編集できる方法で値を保存しないでください。サーバーで使用可能なストレージ(サーブレットエンジンなど)がある場合は、それをセッションコンテキストに保存します。適切なセッションメカニズムがない場合は、署名付きまたはHMACされたCookieに保存できます。

于 2009-07-29T19:38:37.187 に答える