する質問をすることでしか得られない、回答やアドバイスがある。CakePHPおよびサーバーサイド初心者です。現在ウェブサービスを作成していまして、デスクトップ版およびiOSネイティブアプリでのリリースを考えています。iOSネイティブアプリ(言語はSwift)をメインに作成しており、デスクトップ版はまずはサービスの紹介ページとして作成し、後々しっかりと作りこんでいく予定です。構築環境としては、以下になります。※まずはiOSアプリ版をメインとし、デスクトップ版はサービスの紹介ページとして使用するため、直近でCakePHPを使用するのはiOSアプリ版のみとする。※iOS版のCakePHPおよびデスクトップ版のhtml等のソースは同一サーバー上(ドメイン上)に置いているその上で、以下質問がございます。▼CakePHPでのセキュリティについて例えば、投稿された記事のコメント一覧を取得するとした場合にiOS側ではCakePHPのコントローラー側で定義された特定のアクションにアクセスするために、下記のようなコードをURLとし、Alamofireを使用してGETリクエストをサーバーに送り、該当するデータをJSONに変換してiOSアプリ上で表示させるという処理を行うと思います。}}その上で、セキュリティ上の質問がございます。iOSアプリではなくブラウザを立ち上げたユーザーが、上記で記載したURLを直接検索窓に"www.hoge.com/article/comment/index/2"のように入力した場合、ブラウザ上にDBから取得してきたデータがブラウザ上に出力されてしまう、または何らかの方法でデータを取得できてしまったり、CakePHPのアクションが実行されてしまうのでしょうか?現在iOSアプリ版のCakePHPおよびデスクトップ版のソースを同じドメイン(サーバー)下に配置しているため、デスクトップのブラウザ上からwww.hoge.comにアクセスして来たユーザーが故意に上記のようなURLを叩いた際に、iOSアプリ版のCakePHPにおいて予期せぬアクションが実行されたりしてデータが改ざんされたり、セキュリティホールになりえるのではないかと心配しています。上記が私の言うとおりであるならば、これを回避する方法としてどのような方法がございますでしょうか?例えば、下記のようにiOS版のCakePHPを管理するサーバー・ドメインとデスクトップ版のサーバー・ドメイン別個に切り分けて対応するといったことでしょうか。iOSアプリ版用のサーバーやCakePHPを管理するドメインまだ勉強し始めた者なので、わかりづらい部分もあるかと思いますが、何卒よろしくお願いいたします。attachmentクリップ1気になる質問をクリップするクリップした質問は、後からいつでもマイページで確認できます。クリップした質問に回答があった際、通知やメールを受け取ることができます。自分も答えを知りたい質問者以外のユーザにも役立つ評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。質問の評価を上げたことを取り消します低評価-評価を下げられる数の上限に達しました評価を下げることができません1日5回まで評価を下げられます1日に1ユーザに対して2回まで評価を下げられます質問の評価を下げるteratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。コメントをしてください。送信する質問の評価を下げる機能の利用条件この機能を利用するためには、以下の事項を行う必要があります。ある以上、通常のブラウザでアクセスしたのと同様の動きをします。ユーザーIDとパスワードでログインするような仕組みを持つアプリケーションに、認証なしで閲覧できるようであれば論外ですが、そうでないのであれば問題ではないと思います。認証すべきアプリケーションであるなら、APIトークンを発行するなどして認証すればよろしいかと思います。評価が高い回答ほどページの上位に表示されます。remove低評価0回答の評価を下げる下記のような回答は推奨されていません。評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。20:17コメント頂き、ありがとうございます。今回作成するiOS版アプリにおいては、ユーザーIDまたはメールアドレスとパスワードでログインした上で使用するサービスを作成しており、CakePHPもそれに応じたものに作成しています。あれば、仰るようにブラウザからCakePHPにアクセスしてくる際に何らかの認証を行わなければならないという認識でよろしかったでしょうか?また、APIトークンについて理解があまりありませんので、他に考えられる認証方式としてどのようなものがありますでしょうか?コメント頂き、ありがとうございます。今回作成するiOS版アプリにおいては、ユーザーIDまたはメールアドレスとパスワードでログインした上で使用するサービスを作成しており、CakePHPもそれに応じたものに作成しています。23:37ありがとうございます。Componentsを利用し、beforeFliter()関数でログイン前のアクションのみ許可することで対応することは可能でしょうか?ありがとうございます。利用経験ないため回答できません。利用経験ないため回答できません。10:54AuthComponent利用でも可能ですが、その場合はあくまでSessionの管理になります。個人的には、Kousuke_Shibuyaさんがおっしゃられているようなアクセストークンの実装が好ましいと思いますね。アクセストークンの認証にAuthComponentを使う事も出来ます。(認証を自動化せず、個別に認証を発動させるやり方で)AuthComponent利用でも可能ですが、その場合はあくまでSessionの管理になります。個人的には、Kousuke_Shibuyaさんがおっしゃられているようなアクセストークンの実装が好ましいと思いますね。アクセストークンの認証にAuthComponentを使う事も出来ます。13:21お二人ともありがとうございます。Componentを利用可能であること、またアクセストークンの実装が望ましいとのこと、把握しました。こちらにて実装を検討したいと思いますお二人ともありがとうございます。Componentを利用可能であること、またアクセストークンの実装が望ましいとのこと、把握しました。頂いたご意見への回答は行っておりません。