0

序章

登録フォームが組み込まれたアプリケーションがあります。登録フォームは単にPOST私の Web サーバーに対して実行するだけで、ユーザーのアカウントが作成されます。(サーバー上の) 登録ページが にhttps://mywebsite/register.phpあるとします。これにより、ユーザーが手動でそこにアクセスしてアカウントを自分で登録することがPOSTできなくなります (そこに引数を送信するとき、明らかに HTML フォーム フィールドなどはありません)。

ユーザーは、アプリケーションと Web サーバーの間にプロキシを配置し、リクエストを取得して変更するだけです。これはほとんどの人にとっては問題に思えないかもしれませんが、一部の機能 (Web サーバーは登録要求の処理以上のことを行います) では 、要求がユーザーからではなく、アプリケーションからのものであることを知る必要があります。

私の質問

リクエストがアプリケーションからのものであり、変更されていないことをどのように確認できますか? 個人的には、https(これらのハードウェア認証システムのように) いくつかの数式でデータを (さらに に) 暗号化し、Web サーバーで復号化することを考えました。

これについてのあなたの考えと、おそらくこれに対するあなたの解決策を聞きたいです。

4

2 に答える 2

0

一部のツールでは、ブラウザと悪意のあるユーザーに違いはありません。ブラウザが読み取って送信できるものはすべて、ユーザーも送信できます。クライアント側 (JavaScript、HTTPS) の暗号化は役に立ちません。ユーザーはページから使用されている暗号化方法を抽出し、自分のデータで暗号化を繰り返すことができるからです。

POSTランダムなデータを防ぎたい場合は、 anti-forgery-tokenを使用できます。アプリケーションがサーバーにデータを送信する方法と、それを保護する方法 (および理由) を正確に説明できれば、おそらくより有用な答えが得られます。

于 2013-05-21T08:28:24.903 に答える
-1

暗号化方法を選択した場合:

すべてのデータを暗号化する必要はありません。1 つのフィールドだけで十分です。POST リクエストのソースがアプリケーションからのものであり、手動でのものではないことを確認する必要があります。

私の解決策は、動的なもの ( session_id 、 time 、ユーザーの電子メール) に依存する暗号化された値を保持する隠しフィールドを追加し、php ファイルで復号化キーと同じ暗号化キーを使用することです。

于 2013-05-21T08:29:12.877 に答える