1

だから私は自分のサイトを公開し、人々が常に親切であるとは限らない公共の領域に足を踏み入れています. CSRF について学び始めたばかりで、cakephp 3 サイトを公開するときに必要なものであることがわかりました。ここで見た通り!

サイトに csrf コンポーネントとセキュリティ コンポーネントを追加しましたが、大きな問題が 1 つあります。現在、ユーザーがサインアップしたいときにサインアップできません。ストライプのカスタムフォームを使用して支払いを送信しますが、ajax を使用するユーザーをデータベースに追加します。ユーザーが最初に追加され、次に支払いが処理され、注文もデータベースに保存されます。

ストライプのドキュメントによると、送信ボタンをクリックした後、非表示の値にトークンをフォームに追加しましたが、新しいセキュリティがこれを許可していないことに気付きました。

私はajaxを使用して投稿データをユーザーコントローラーに送信し、送信時にフォーム入力を追加しているため、

csrf トークンをチェックして、関連するアクションのセキュリティを無効にせずにセキュリティ リークがないことを確認するにはどうすればよいですか?

Cakephp 3でこれを行うための例が不足しているように見えるので、これがどのように行われるかの例は非常に高く評価されます.cakephp 3の自動魔法がフォームにトークンを追加し、クッキー。どのように/どこで/何を確認すればよいかわかりません。

4

3 に答える 3

5

passには、Ajax リクエストで parameter をX-CSRF-Token使用し、cookie の値を定義します。beforeSendcsrfToken

$.ajax({
    url: '/foo/bar',
    type: 'POST',
    dataType: 'HTML',
    data: data,
    beforeSend: function(xhr){
        xhr.setRequestHeader('X-CSRF-Token', csrfToken);
    },
})
.done(function(data) {
    alert('done !');
});
于 2016-02-06T08:23:53.550 に答える