- hidenorigoto
- 14379
- 0
- 4
- 0
symfonyでログイン画面を作ってたんだがIEでアクセスするとcsfrエラーになってログインできないバグ取りに時間がかかった。。。まさかそんなところだったとはって感じです
2010-06-17 02:09:22@t_katsura 通常だと、echo $formでCSRF用のHIDDENも出力されるはずです。 単一の画面で処理しているフォームで発生しますか? また、出力されているHTMLに_csrf_tokenのHIDDENフィールドがあって値が入っているかも確認してみてください。
2010-06-17 09:56:08@hidenorigoto わざわざありがとうございます。 echo $formだけでも確かにcsrfのhidden要素である_csrf_tokenは出力されているのですがFirefoxではログインできているのになぜかIEだとログインできないのです。
2010-06-17 21:09:50@hidenorigoto sfDoctrineGuardPluginのログイン画面で実行すると「csrf token: CSRF attack detected.」と同じように出てしまいます。FFだと入れるのにIEだと入れないです、、何かわかりますでしょうか?
2010-06-17 21:16:25@t_katsura なるほど。CSRFの処理はPHPのセッションも関連するのですが、IEでCookieをすべて拒否しているようなことはないでしょうか? #symfony_ja
2010-06-17 21:20:13@hidenorigoto Cookieが拒否されてるかもとは思いCookieを全許可にしたりキャッシュを消したりはしてみましたが同じような感じです。 とりあえず今はまだIEとFFしかテストしていないのでIEのエンジンを使ってるスレイプニルでも入れてみます
2010-06-17 21:29:24@hidenorigoto 各種ブラウザを入れてテストしてみたところFF,Opera,SafariはOKでしたがIE8,スレイプニル(IEのエンジンを使ってるだろうから当然かもしれませんが)がcsrf token: CSRF attack detected.という結果でした。
2010-06-17 21:40:34@t_katsura IEのバージョンはいくつですか?
2010-06-17 21:43:05@hidenorigoto IEのバージョンは8です 今しがたIETesterを入れて各種バージョンIE8,IE7,IE6,IE5.5で見てみたところIE5.5だけが「csrf token: CSRF attack detected.」が出ずにログインできました
2010-06-17 21:54:40@t_katsura IE8でしたら、ツール→開発者ツールを開いて、キャッシュ→Cookie情報を表示する、を選択するとcookieの情報を確認できるのですが、symfonyという名前のcookieは出てきますか?
2010-06-17 22:09:06@hidenorigoto E8の設定ではすべてのCookieを受け入れるにしてるんですけれどCookie一覧の画面上ではsymfonyのCookieは出てきませんでした。
2010-06-17 22:24:34@t_katsura うーむ、よく分かりませんねぇ。ちなみにこちらのIE8で、sfDoctrineGuardPluginを使っている認証などは問題なくできていますので、なんらかのIEの設定の問題だとは思うのですが・・・・。何か分かりましたら、またリプライさせていただきます。
2010-06-17 22:58:27@hidenorigoto 会社からなのでテストはできていませんが たぶん問題が解決いたしました。 symfonyには直接関はありませんでした。 ローカルで環境を作っているのですがドメイン名が「xxx_app」という感じで「_」を用いていたのが原因でした。
2010-06-18 10:23:05@hidenorigoto _があるとIEではクッキーに保存できないのですね hidenorigotoさんのおかげで問題の切り分けができたので解決いたしました。 ありがとうございます。
2010-06-18 10:26:25@t_katsura なるほど、ドメイン名にアンダースコアがあるとIEでCookieを書き込めないんですね。私もそれは初めて知りましたw 解決されたようでなによりです。
2010-06-18 12:56:18