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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

0回答

341閲覧

ハイブリッドアプリにおけるLocal Storageのセキュリティについて

Webtuuuu

総合スコア30

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2022/12/03 11:38

前提

Monacaを利用してハイブリッドアプリを作成しています。
普段Webサイト・システム構築を生業としていますが、ハイブリッドアプリの作成に関しては初です。
あくまでも現時点では練習として行っています。

実装したい処理についてですが、ハイブリッドアプリ側からのログインとセッションの維持です。

ネイティブアプリ(Twitter、Instagram、LINE等)と同じように、
一度ログインしてしまえば自主的にログアウトしない限りログイン状態が維持される状態を作ろうとしています。


▼参考記事
HTML5のLocal Storageを使ってはいけない(翻訳)

ハイブリッドアプリの場合、PHPのようなサーバーサイド言語は使用できないので、
通常の会員制サイト等を作るような書き方ができません。

そこでLocal Storageに目を付けました。
上記記事にある通り、会員制Webサイトを作る場合Local Storageにセッション情報を保存するのはセキュリティの観点からタブーということは理解しています。

しかし、「ハイブリッドアプリの場合はブラウザのように検証ツール等がないため利用者はソースコードの確認等ができない」と私は認識しています。

質問①

「ハイブリッドアプリの場合はブラウザのように検証ツール等がないため利用者はソースコードの確認等ができない」
→この認識は間違っていますか?

質問②

  1. ハイブリッドアプリでログイン用IDとログイン用パスワードを入力
  2. ajax(非同期通信)で入力した値をWeb上([https://test.com/_auth.php]等)にPOST送信
  3. IDとパスワードが一致した場合セッションキーのようなものを発行
  4. 発行したセッションキーをハイブリッドアプリに送り返す
  5. ハイブリッドアプリ側で受け取ったセッションキーをLocal Storageに保存
  6. Local Storageにセッションキーが存在する場合はログイン状態継続
  7. 自主的にログアウトした場合Local Storageをクリア

こういった実装をしようと思っています。
この実装においてLocal Storageにセッションキーを保存することで発生するデメリットはありますか?

補足情報(FW/ツールのバージョンなど)

Monaca
PHP 8.1
※サーバーはレンタルサーバーです
参考:HTML5のLocal Storageを使ってはいけない(翻訳)
参考:[Monaca] ストレージの利用について

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

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

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

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

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

m.ts10806

2022/12/03 12:30

Local Storageは保存された情報をユーザが確認できるのはご存じですか?
Webtuuuu

2022/12/04 05:30

いいえ、知りませんでした。
m.ts10806

2022/12/04 06:55

ブラウザの開発ツール(デベロッパツール)を色々確認してみてください。WindowsだとF12で起動されます(ブラウザの種類によってメニュー名など違うので、そこは自身のブラウザにあわせて調べてみてください) そもそもWebStorage自体はユーザのブラウザ(のストレージ)に情報を保存する技術で、あくまでクライアント側の話なので、おそらく想定されているようなものではないと思われます。
m.ts10806

2022/12/04 09:52 編集

ただ、参照されている記事「HTML5のLocal Storageを使ってはいけない(翻訳)」にちゃんと書かれていますね。割と最初の方。 >次にDeveloper Toolsを開いてみると、userName変数とfavoriteColor変数のどちらもブラウザのlocal storageに保存されていることがわかります。 実現したいこと云々より記事への理解が先かもしれません。 いずれにしても以下の質問タグはつけたほうが良さそうです。 https://teratail.com/tags/Monaca https://teratail.com/tags/JavaScript
Webtuuuu

2022/12/04 10:02

PC等でデベロッパツールを利用しLocal Storageを閲覧することは可能だということは承知しております。 しかし、それは「Web」におけるものであるためハイブリッドアプリはこれに当てはまらないと思いました。 そのためWebでLocal Storageを使用することは当然ありませんが、ハイブリッドアプリでのLocal Storageの利用はデベロッパーツールが無い以上確認のしようがないのでは無いのか。というのが質問の1に当たります。 記載して頂いたコメントは「Web」であればそのとおりなのですがあくまでも今回はハイブリッドアプリとしての実装となります。
m.ts10806

2022/12/04 10:08

ハイブリッドアプリはWebの側面も併せ持ったものという認識です。 Webアプリである限り、そこにあるので見る手段はゼロではないと(物凄く詳しいわけではないので、あくまで可能性として) URLを持つ可能性があるのでしたら、一般的に普通のブラウザからのアクセスも可能となるはずで、 少しでも懸念があるなら、より安全な方法での実装と運用をすべきという、いち意見です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問