こんばんは。
CakePHPおよびサーバーサイド初心者です。
現在ウェブサービスを作成していまして、デスクトップ版およびiOSネイティブアプリでの
リリースを考えています。
まずはiOSネイティブアプリ(言語はSwift)をメインに作成しており、デスクトップ版はまずはサービスの紹介ページとして作成し、後々しっかりと作りこんでいく予定です。
構築環境としては、以下になります。
・サーバー:クラウドを借りてその上にCentOSを構築
・DB:MySQL
・Webアプリケーション:両方ともCakePHPを使用する
・その他
※まずはiOSアプリ版をメインとし、デスクトップ版はサービスの紹介ページとして
使用するため、直近でCakePHPを使用するのはiOSアプリ版のみとする。
※iOS版のCakePHPおよびデスクトップ版のhtml等のソースは同一サーバー上(ドメイン上)に置いている
その上で、以下質問がございます。
▼CakePHPでのセキュリティについて
例えば、投稿された記事のコメント一覧を取得するとした場合に
iOS側ではCakePHPのコントローラー側で定義された特定のアクションに
アクセスするために、下記のようなコードをURLとし、Alamofireを使用してGETリクエストをサーバーに送り、該当するデータをJSONに変換してiOSアプリ上で表示させるという処理を行うと思います。
Swift
1let url_for_alf = "www.hoge.com/article/comment/index/\(self.userId)"
PHP
1//CakePHP側 2class CommentsController extends AppController { 3 4 function index(){ 5 //処理を記載 6 } 7}
その上で、セキュリティ上の質問がございます。
iOSアプリではなくブラウザを立ち上げたユーザーが、上記で記載したURLを直接検索窓に"www.hoge.com/article/comment/index/2"のように入力した場合、ブラウザ上にDBから取得してきたデータがブラウザ上に出力されてしまう、または何らかの方法でデータを取得できてしまったり、CakePHPのアクションが実行されてしまうのでしょうか?
現在iOSアプリ版のCakePHPおよびデスクトップ版のソースを同じドメイン(サーバー)下に配置しているため、デスクトップのブラウザ上からwww.hoge.comにアクセスして来たユーザーが故意に上記のようなURLを叩いた際に、iOSアプリ版のCakePHPにおいて予期せぬアクションが実行されたりしてデータが改ざんされたり、セキュリティホールになりえるのではないかと心配しています。
もし上記が私の言うとおりであるならば、これを回避する方法としてどのような方法がございますでしょうか?
例えば、下記のようにiOS版のCakePHPを管理するサーバー・ドメインとデスクトップ版のサーバー・ドメイン別個に切り分けて対応するといったことでしょうか。
(例)
www.hoge.com -> デスクトップ版用のサーバーやCakePHPを管理するドメイン
www.hogehoge.com -> iOSアプリ版用のサーバーやCakePHPを管理するドメイン
まだ勉強し始めた者なので、わかりづらい部分もあるかと思いますが、何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/08/28 11:17
退会済みユーザー
2016/08/28 11:22
2016/08/28 14:37
退会済みユーザー
2016/08/28 14:57
2016/08/29 01:54
2016/08/29 04:21