質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

Q&A

解決済

1回答

752閲覧

アクセストークンに対する、ID/Passwordを毎回含めたリクエストのデメリットについて

sooo

総合スコア9

REST

REST(Representational State Transfer)はwebアプリケーションの構築スタイルの一種です。HTTP GET/POSTによってリクエストを送信し、レスポンスはXMLで返されます。SOAPのようなRPCの構築と比べるとサーバからクライアントを分離することが出来る為、人気です。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Authentication

Authentication(認証)は正当性を認証する為の工程です。ログイン処理等で使われます。

0グッド

1クリップ

投稿2018/06/06 04:25

認証が必要なAPIサーバを開発する際の主流は以下の流れだと思います。

1. クライアントからID/Passwordを含めたログインリクエストを送る 2. サーバ側でID/Passwordを検査して、正しければアクセストークンを発行、返却する 3. クライアント側でアクセストークンをlocalStorage等に保存して、認証が必要なリクエスト時に付与する

このとき、アクセストークンの代わりにID/PasswordをlocalStorageに保存して、
毎回リクエストに含めてサーバ側で毎回認証させる場合のデメリットはどのようなことが考えられるでしょうか。

自分なりに考えた点は以下の通りですが、ご指摘いただけると幸いです。

・外部に認証APIを公開するためにトークン化が必要

・毎回、認証処理が必要となりアクセストークンの妥当性確認よりもコストが重くなる

・通信時にID/Passwordが漏洩するリスクが高くなる
(ログイン時には漏洩するリスクがあり、そこまで意味はない気がします)

・localStorageからID/Passwordが漏洩する
(アクセストークンが漏洩した場合も問題ですが、ブラックリスト等により対策が容易?)

よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

名前のIDとパスワードをクライアント側で保存する方式は、率直に言ってデメリットのみ目立ち、メリットがない気がします。

・通信時にID/Passwordが漏洩するリスクが高くなる

(ログイン時には漏洩するリスクがあり、そこまで意味はない気がします)

これは、HTTPSを前提とすると、その通りですね。
ログインの際のみHTTPSとして、その後はHTTPで運用する昔ながらの方法はとれなくなりますが、今どきそんな方法は使わない、ということでよいですか?

・localStorageからID/Passwordが漏洩する

(アクセストークンが漏洩した場合も問題ですが、ブラックリスト等により対策が容易?)

これは重大な問題です。localStorageにパスワードを保存すると、クロスサイト・スクリプティングにより簡単に漏洩してしまいます。クロスサイト・スクリプティングがあると成りすましはできるわけですが、その場合でもパスワードまでは漏洩しないので、通常はパスワードを必要とする処理(決済の前とか、パスワード変更とか…)は悪用できません。これに対して、パスワードが漏洩したら、それこそ「何でもあり」になってしまいます。
また、気にするかどうかは意見の分かれるところでしょうが、その方のブラウザを操作しただけでパスワードがばれてしまうことも問題です。

これらのデメリットを上回るメリットもなさそうですので、生のパスワードをブラウザのストレージに保存する方式は避けるべきかと思います。

投稿2018/06/06 11:17

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問