1

操作が成功した後にユーザーをリダイレクトするためだけに使用するURLがあります。(例:フィードバックを送信した後の「ありがとう」ページ)。

問題は、これらのページに直接アクセスできることです。

これを防ぐ方法はありますか?

4

4 に答える 4

2
function thank_you() {
    if($this->referer() != 'some_url') {
        $this->redirect('/');
    }
}

直接アクセスしたくない方法では、リファラーが有効かどうかを確認してください(つまり、「ありがとう」ページの「お問い合わせフォーム」)。

リファラーが「お問い合わせフォーム」でない場合は、どこにでもリダイレクトできます。一致する場合は、ありがとうページを出力します。

于 2012-09-08T10:32:36.177 に答える
0

操作の完了時にランダムキーを作成して保存し、リダイレクトする前にキー(組み合わせまたはセッション、URL、またはdb、選択を使用)が有効であることを確認するだけです。

于 2012-09-08T04:05:57.043 に答える
0

Controller::flashがあなたを助けることができるように見え ます。

于 2012-09-08T04:33:24.127 に答える
0

リダイレクトの直前にページにセッション変数を設定しました。次に、「ありがとう」ページで、変数がテストされ、設定が解除されます。テストが行​​われたときにそこになかった場合は、「このページに直接アクセスすることはできません」というエラーページにリダイレクトします。

私はCakeを使ったことがないので、これは一般的なPHPの答えであり、Cake固有の答えではありません。

于 2012-09-08T04:45:26.053 に答える