ちょっと、大学院生の話を聞いていて、問題がある話があったので、
取り上げてみる。
そのシステム、スマホから(iphoneから)DBサーバーに直接アクセス
にいっている
(具体的には、iphoneから、libpqをObject-c対応したものを呼んでいる)。
つまり、コントローラーを介していない。
この場合、2つの問題がある。
(1)修正(バージョンアップ含む)に弱い
(2)セキュリティの問題
さらに、通信が多くなることもあるんだけど、これは必ずしも
いえないので、今回は置いておく。
■修正(バージョンアップ)に弱い
アクションをおく場合、アクションは、REST型のWebサービス
として提供し、これがDBアクセスする。
したがって、DBが変わっても(DBのソフトのみならず、バージョンアップ含む)
Webサービスのインターフェースは変わらないので、このまま対応できる。
しかし、もし、スマホから直接DBを読んでしまうと、DBがバージョンアップし、
インターフェースライブラリが変わると、そのたびに、アプリも変えないといけない
問題が起こる。
■セキュリティ上の問題
Webサービスを介した場合、このサービスにファイヤーウォールを
かけられる。そこで、外からDBを直接操作できない。
そもそも、DBはプライベートアドレスにするので、外から直接
見れない。
しかし、クライアントから(スマホに限らず)DBを直接通信して
しまうと、DBをパブリックにしなきゃいけないし、
IPアドレスがばればれになる。
これは、セキュリティ上、大変よろしくない。
ということで、クライアントから直接DBサーバーにはアクセスしない。
ということは、大学生、大学院生の諸君はわかっておくように。
大学の先生は、教えておくように。
取り上げてみる。
そのシステム、スマホから(iphoneから)DBサーバーに直接アクセス
にいっている
(具体的には、iphoneから、libpqをObject-c対応したものを呼んでいる)。
つまり、コントローラーを介していない。
この場合、2つの問題がある。
(1)修正(バージョンアップ含む)に弱い
(2)セキュリティの問題
さらに、通信が多くなることもあるんだけど、これは必ずしも
いえないので、今回は置いておく。
■修正(バージョンアップ)に弱い
アクションをおく場合、アクションは、REST型のWebサービス
として提供し、これがDBアクセスする。
したがって、DBが変わっても(DBのソフトのみならず、バージョンアップ含む)
Webサービスのインターフェースは変わらないので、このまま対応できる。
しかし、もし、スマホから直接DBを読んでしまうと、DBがバージョンアップし、
インターフェースライブラリが変わると、そのたびに、アプリも変えないといけない
問題が起こる。
■セキュリティ上の問題
Webサービスを介した場合、このサービスにファイヤーウォールを
かけられる。そこで、外からDBを直接操作できない。
そもそも、DBはプライベートアドレスにするので、外から直接
見れない。
しかし、クライアントから(スマホに限らず)DBを直接通信して
しまうと、DBをパブリックにしなきゃいけないし、
IPアドレスがばればれになる。
これは、セキュリティ上、大変よろしくない。
ということで、クライアントから直接DBサーバーにはアクセスしない。
ということは、大学生、大学院生の諸君はわかっておくように。
大学の先生は、教えておくように。