私は、実行中のIonic/Angular 2アプリを持っていますlocalhost:8000
このアプリケーションは、最終的にブラウザプラットフォーム上で動作します。アプリケーションはhttps://adawy/api
のローカルマシンでホストされているRESTFull APIを呼び出しています。adawy
は私のホスト名で、hosts
ファイルとapache仮想ホストで定義されています。サーバー側はスリム3です。HTTPOnly Cookiesを使用してXSRFに対してJWTを保護する方法は?
認証時のAPIは、すべての要求で使用するJWTを返しています。
私の目標は、クロスサイトリクエスト偽造とクロスサイトスクリプティングからトークンを保護することです。トークンをjavascript変数または任意のローカルストレージに保存すると、javascriptからJWTにアクセスできるようになります。
私は、JWTをHTTPOnly Cookieとして返すことをお勧めします。したがって、javacriptからアクセスすることはできず、adawy
ドメインへの今後のリクエストでは、ブラウザによってのみ送信されます。
私はクッキーとして正常にトークンを返しましたが、問題は次のXHRリクエストでクッキーが送信されないことです。
また、私はDevtoolsのCookiesセクションにCookieが表示されません。
私は角がXSRF-TOKEN
クッキーを探していることにより、このような問題でサポートできることを知っています。 クッキーの名前をXSRF-TOKEN
に設定していますが、それ以外のリクエストではこのクッキーは送信されません。
角度がこのクッキーにアクセスしているかのように、これがどのように保護されるのだろうと思います。
次はCookieが送信されないリクエストです。角度コードは直接それを設定しているので、ヘッダAuthorization
を無視してください。私の角度のアプリで
最後のGETリクエストをしながら、私はwithCredentials: true
オプションを設定しています。
更新 私はadawy.com
を使用していましたが、私はまだ同じ問題があります。
あなたの答えをありがとう。ドメインを「adawy、com」に変更しましたが、私はまだ同じ問題を抱えています。 –
[localhostからのリクエストに対するCORSの例外はChromeでサポートされていません](http://stackoverflow.com/questions/10883211/deadly-cors-when-http-localhost-is-the-origin) [この問題は2014年に終了しました](https://bugs.chromium.org/p/chromium/issues/detail?id=67743)のように見えます。明らかに 'Access-Control-Allow-Origin:*'はlocalhostで動作するので、テストを終えることができますが、 'localhost'はno-goです。 – LinuxDisciple
私はその質問に遭遇しました。それがホスト名として 'adawy.com'を使用している理由です。私は自分のクッキー設定そのものに何か間違っていると思う。しかし、私は把握することができません。 –