バージョン選択

フォーラム

メニュー

オンライン状況

87 人のユーザが現在オンラインです。 (77 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 86
pandamo21 もっと...

サイト内検索

質問 > フロント機能 > CSRFトークンについて

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yuy-tank
投稿日時: 2019/4/11 11:13
対応状況: 開発中
一人前
登録日: 2017/11/10
居住地:
投稿: 72
CSRFトークンについて
ECCUBEの本体を見ると、フォームが用意されているページでは、テンプレート側にCSRFトークンが埋め込まれておりますが、コントローラー側では、isTokenValid()をしているページとしていないページがあります。
これについて、明示的にisTokenValid()を行わなくても、CSRFトークンの判定をしてくれていると解釈していますが、明示的に行うのはどういった時なのでしょうか?
nyorai
投稿日時: 2019/4/11 15:39
対応状況: −−−
仙人
登録日: 2015/8/21
居住地:
投稿: 302
Re: CSRFトークンについて
フォーム(FormType)を利用しているコントローラでは、

if ($form->isSubmitted() && $form->isValid()) {
//
}

のような記述があると思いますが、通常は$form->isValid()でcsrfトークンのチェックが行われます。

$this->isTokenValid()を利用しているのは、例えば会員の削除処理など、フォーム(FormType)を使用しない箇所ですね。

https://github.com/EC-CUBE/ec-cube/blob/3.0/src/Eccube/Controller/Admin/Customer/CustomerController.php#L191

こういった箇所ではisTokenValid()で明示的にチェックしています。
yuy-tank
投稿日時: 2019/4/11 22:31
対応状況: −−−
一人前
登録日: 2017/11/10
居住地:
投稿: 72
Re: CSRFトークンについて
そういうことなんですね。納得いたしました。
わかりやすく説明していただき、ありがとうございました。
yuy-tank
投稿日時: 2019/4/12 14:37
対応状況: −−−
一人前
登録日: 2017/11/10
居住地:
投稿: 72
Re: CSRFトークンについて
申し訳ありません。追加で質問があります。
isTokenValid()を使用しているページでは、テンプレート側に以下の記述があります。

{{ csrf_token_for_anchor() }}


これは、展開すると、token-for-anchor = " ********** " (トークン値) となるわけですが、isTokenValid()を実行する際に、この属性token-for-anchorを一体どこで拾っているのでしょうか?どうか教えてください。
umebius
投稿日時: 2019/4/13 18:26
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: CSRFトークンについて
token-for-anchor = " ********** "
はその名の通り、アンカータグ(リンク)につけるためのものです。

このリンクをクリックしたタイミングで、javascriptの下記の部分で「_token」というパラメーターを加えたフォームが擬似的に生成されデータを送信します。

https://github.com/EC-CUBE/ec-cube/blob/3.0.17/html/template/default/js/function.js#L359


----------------
EC-CUBEカスタマイズ・高速化・脆弱性対策・SEO ご相談ください。

2系・3系から4系へのバージョンアップ実績豊富

yuy-tank
投稿日時: 2019/4/15 12:05
対応状況: −−−
一人前
登録日: 2017/11/10
居住地:
投稿: 72
Re: CSRFトークンについて
なるほど、javascriptで_tokenというパラメータを生成していたのですね。盲点でした。解凍して頂き、ありがとうございました。
umebius
投稿日時: 2019/4/21 9:16
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: CSRFトークンについて
そうですね、結構javascriptが使われていて盲点になっています。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,305名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.