1

PHP の初心者です。サイトの改ざんを防止しようとしています。誰かがブラウザのアドレスバーの URL を変更した場合、ページの URL をリロードしたいと考えています。私が考えた 1 つの方法は、必要に応じて再利用できるように、ページの URL をセッション変数に格納することです。
次のページの URL は、ユーザーの選択に基づく SQL クエリから取得されるため (何十もの選択肢がある可能性があります)、その URL がどのようなものになるかは事前にわかりません。私がやりたいのは、ユーザーがリンクをクリックしたときにサーバーに送信されるアドレス (リンクにカーソルを合わせたときに Firefox が左下隅に表示するアドレス) を回復し、それをセッション変数に保存することです。 . これは可能ですか?そうであれば、どうすればPHPで回復できますか?

4

1 に答える 1

1

複数の URL は必要ありません。サーバーは次に何をすべきかを知っているので、一連のページ全体で同じ URL を使用できます。

「有限ステート マシン」について理解し、ユーザーに与える選択に基づいて非常に限られた一連のアクションのみを許可するワークフローを作成するのに、それらがどのように役立つかを理解してください。これにはおそらくセッションが必要です。

正しく行われた場合、ユーザーは URL を改ざんできません。他のすべての URL では 404 か何かが返されるためです。また、ユーザーの選択を受け入れる 1 つの URL をいじろうとしても、必要なステップが許可されたステップのリストにある場合にのみ機能します。そうでなければ、何も変わりません。

説明する:

最初の状態は「開始」で、許可される遷移は「回答 1」と「回答 2」です。これらは 2 つの終了状態に移行しており、それ以上の移行はありません。そのため、ユーザーが「answered 1」の状態になると、マシンの状態がセッションに関連付けられていない場合に禁止される可能性のある新しいセッションを作成する以外に、別の状態に到達する方法はありませんが、ユーザーアカウント。

于 2013-04-22T20:54:31.640 に答える