バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
miyawaki
投稿日時: 2019/4/28 3:19
対応状況: −−−
半人前
登録日: 2019/4/28
居住地:
投稿: 23
TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
▼テンプレート
[EC-CUBE]4.0.1
[レンタルサーバ]さくらインターネット
[OS]Windows10 HOME
[PHP]Version 7.2.17
[データベース]MySQL 5.7
[WEBサーバ]FreeBSD 11.2-RELEASE-p8 amd64
[ブラウザ]73.0.3683.103(Official Build) (64 ビット)
[導入プラグインの有無]カテゴリページ/コンテンツ追加 for EC-CUBE4
[カスタマイズの有無]無し
[現象]TOPページにカートに入れるボタンの設置を試みています。
product_idやproductClass等は固定の値ですが_tokenの値が動的な為、入れられずにおります。

過去に『MYページの購入履歴詳細ページで商品個々にカートボタンを付けたい』というトピック
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=flat&topic_id=18753&forum=10
があり非常に興味深く拝見させていただいたのですが、
フォームデータを作成してテンプレートに渡すといった作業が
実際にどのファイルをどのように編集するか等が不明で、
よろしければご教授いただけますと幸いで御座います。
umebius
投稿日時: 2019/4/28 13:11
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
商品詳細ページの下記コードが参考になるかと思います。

        $builder = $this->formFactory->createNamedBuilder(
            '',
            AddCartType::class,
            null,
            [
                'product' => $Product,
                'id_add_product_id' => false,
            ]
        );


ProductController::detailで
AddCartTypeのフォームをTwigに渡しています。

トップページでも同じことをしてやって、twigで{{ form_widget(form._token) }}すればトークンが入ります。
トップのどこの位置かにもよりますが、TopControllerかブロックであれば該当するコントローラーですね。

-------

AddCartTypeのトークンチェックを無効にするという手もあります
(csrf_protectionをfalse)


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

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

miyawaki
投稿日時: 2019/4/28 22:16
対応状況: −−−
半人前
登録日: 2019/4/28
居住地:
投稿: 23
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
umebius 様

解決方法についてご返信いただき、誠にありがとうございます。

AddCartTypeのトークンチェックを無効にする方法で対応したく思いますが、
AddCartTypeの中にcsrf_protectionまたはそれらしい記述が見当たりませんでした。
新たに特定の場所に記述すればよいでしょうか。

細かい質問でたいへんに恐縮ですが、
何卒よろしくお願い申し上げます。
umebius
投稿日時: 2019/4/29 7:03
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
miyawaki様

AddCartTypeのconfigureOptionsメソッドにおいて
オプションに 'csrf_protection' => false,を追加すれば設定可能です。
miyawaki
投稿日時: 2019/4/29 20:26
対応状況: 解決済
半人前
登録日: 2019/4/28
居住地:
投稿: 23
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
umebius様

本件、ご指定いただいた個所への適応により、
_tokenのinputを指定せずにカートに商品を加える事ができました。

ご丁寧にご教授くださり、誠にありがとうございます。
今後も使用していく予定のプラットフォームですので、
より詳しくなれるよう自らでも勉強して参ります。

このたびは、誠にありがとうございました。
umebius
投稿日時: 2019/4/29 20:36
対応状況: −−−
登録日: 2016/7/22
居住地:
投稿: 2085
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
紹介しておいてなんですが、基本的には'csrf_protection' をfalseにはしない方がいいと思います。
Controllerからちゃんとフォームを渡してトークンを出力した方がいいですね。
AddCartTypeはカートインだけですのでともかく、他のフォームで同じことをすると直接被害を出すような脆弱性になってしまうこともありますので。
ぜひフォームをコントローラから渡す方法も試されてみてください。
miyawaki
投稿日時: 2019/5/7 17:19
対応状況: −−−
半人前
登録日: 2019/4/28
居住地:
投稿: 23
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
umebius様

虚弱性につきまして、承知いたしました。

フォームを渡すという方法は私にとってかなり敷居が高いようですが、
調査をして設定できるよう試してみたいと思います。

詳細にご教授いただきまして、誠にありがとうございます。
camino
投稿日時: 2019/11/28 15:43
対応状況: −−−
新米
登録日: 2019/4/24
居住地:
投稿: 10
Re: TOPページにカートボタンを設置したいのですが、_tokenの値で躓いております
お答えいただきありがとうございます!試してみます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
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.