OwaspZapでログイン認証でInvalidAuthenticityTokenとなってしまう


はじめに

やっとFireFoxでlocalhostにアクセスできるようになり、いざ作成しているサイトにログインしようとしたらなぜかエラーになりました。

しらべてみるとプロキシが大きく関係していそう。
記事に見当たらなかったので今回はまとめていきます。

問題

ログイン認証をしたときに以下のエラーが発生する。

また、パラメータはしっかりと送られていることを確認できた。

 {"authenticity_token"=>"***********", "user"=>{.....

プロキシ設定を解除するとログインが通るので、プロキシが悪さをしているようだった。

原因

Dockerのログを確認したところ以下のようなログが出力されていた。

HTTP Origin header (https://localhost:3000) didn't match request.base_url (http://l

HTTPでしか受け取れないのに、HTTPSのヘッダーで送っているよとのこと。
Dockerはhttpでアクセスしているが、FireFoxでアクセスしたときはhttp://でアクセスしてもhttps://に変わってしまう。なぜかhttpにはアクセスができなかった。

プロキシの設定でhttpsにはプロキシを用いない設定をしてみた。

このプロキシーをHTTPSでも使用するのチェックを外してみたが、やはりhttpsにリダイレクトされる。。

解決方法

この記事に解決方法が載っていました。

ツール→オプション→HUDをクリック

Enable when using the ZAP Desktopのチェックを外すことでhhtpにアクセスできるようになります。

この機能は、サイト上でテストができるツールで最近導入されたようです。
このツールを使うにはhttpsからつなげる必要があります。

また、先ほどFireFoxのプロキシ設定でHTTPをプロキシ設定から外したので戻しました。
これを忘れていて、なぜかHTTPSのサーバーにアクセスできない事象が発生して時間を使ってしまいました。

おわりに

いまは動的チェックのログイン周りでよくわからずに困っています。
はやく仲良くなりたいものです。

参考