・HTML5は触ったことがない
・サーバサイドDBについては、PHP+PostgreSQLの経験あり
・そもそもサーバサイドのDBなのか?ローカルに保存されるとする解説サイトがいくつかあり、混乱している
・社内サーバにDBを構築して、それをブラウザで社員の各PCからHTML5でアクセスし、DBを更新するようなことは可能か。社外からノートPCでアクセスした場合はどうか。
・社外に開放した場合、アクセスを制限するためには、単純にページをBasic認証などで制限するだけでは不完全(DBに格納するデータは機密性の高いもの)と思われるが、どのように対処すべきか
・Adobe AIRでの開発も一応候補に入っている(こちらも現時点での開発経験は無し。AS3は使える)。AIRでは社員PCにだけアプリをインストールすればセキュリティは担保される気がするが認識はあっているのか。
・AIRよりもHTML5を使用したほうがよいメリットがあるか。
一部のみの回答も可です。URLでもご自身のご意見でも構いません。
・そもそもサーバサイドのDBなのか?ローカルに保存されるとする解説サイトがいくつかあり、混乱している
Web SQL databaseは2010年10月時点で策定が中断されていますが、少なくともその時点ではクライアントサイドのDBです。
・社内サーバにDBを構築して、それをブラウザで社員の各PCからHTML5でアクセスし、DBを更新するようなことは可能か。社外からノートPCでアクセスした場合はどうか。
DBファイルをファイル共有すれば原理的に不可能ではありませんが、Web SQL databaseは複数アクセス処理に対応していないので、データベースの内容が壊れることがあります。
・社外に開放した場合、アクセスを制限するためには、単純にページをBasic認証などで制限するだけでは不完全(DBに格納するデータは機密性の高いもの)と思われるが、どのように対処すべきか
前述のようにファイル共有するしか方法がないので、社外には開放すべきではありません。
MySQLなどを使い、従来通りのサーバサイドのDB処理を行うべきです。
・Adobe AIRでの開発も一応候補に入っている(こちらも現時点での開発経験は無し。AS3は使える)。AIRでは社員PCにだけアプリをインストールすればセキュリティは担保される気がするが認識はあっているのか。
通信路上のセキュリティは担保されません。SSLを導入するなどの必要があります。
また、RDBMSはSQLiteになりますが、DB本体を暗号化する機能をもっていません。そこで、SQLCipherのような暗号化ソリューションを導入する必要があります。
・AIRよりもHTML5を使用したほうがよいメリットがあるか。
DBに関していえば、現時点ではメリットはありません。
W3C、「Web SQL Database」の仕様策定を正式に断念
http://japan.zdnet.com/business-application/analysis/20423173/
>社外に開放した場合、アクセスを制限するためには、単純にページをBasic認証などで制限するだけでは不完全
>(DBに格納するデータは機密性の高いもの)と思われるが、どのように対処すべきか
SSLをかければ、盗聴などの途中経路でのデータ抜き出しは排除できます。
SSLをかけたBASIC認証なら、パスワードを抜き出せないのである程度は大丈夫です。
SSLのクライアント認証にすれば、クライアントに認証が入ってないマシンからは使えませんので
SSLクライアント認証にすればよいでしょう。
>単純にPHP+DBで作った方が早い気がしてきたなぁ。
Adobe AIR+PHP+DBという組み合わせでも可能です。
このようにすると、リクエストを投げているURLがわかりにくくなるとともに
事実上、Adobe AIRで作ったクライアントソフトがないと使い物になりませんから
かなり強度は上がります。
>ローカルに保存されるとする解説サイトがいくつかあり
・クッキーで扱えるデータよりももっと大きなものを使いたい
・接続していない状態でも動作させたい
などの機能を実現するために出来た仕様です。
参考になります。
質問文の、ピントの外れた感じでもお分かりと思いますが、いままでセキュリティ周りは担当のエンジニアに任せて、用意された環境でソースを書くだけだったので、このあたりのセキュリティの考え方が非常にあいまいで困ってます。
全体的に、AIRでの開発がよさそうですね。
HTML5を使うというのは、(サーバサイドDBを使うとなると)単なるフロントのスクリプトの違いがあるだけで、実質ウラ側のコードはPHPなどがやることになるのでHTML4で書くのと機能的な差はなくて、意味なさそうですね。
ありがとうございます。根本的な理解が間違ってたっぽいですね。
HTML5にしろAIRにしろ(私&会社にとって)新しい技術なので、技術習得の意味も込めての選択肢だったのですが、目的に対して機能が合ってない感じですね。
AIRアプリで言うと、たとえばアスクルのカタログアプリなどは、アプリ上でDBからカタログを引っ張ってきて、最終的には注文まで完了しているように見えます。カタログの表示は単なるSELECTなのでセキュリティに考慮する必要はないでしょうが、注文部分に関しては、SSL&SQLCipherのような対応策を用意しているということでしょうね。
単純にPHP+DBで作った方が早い気がしてきたなぁ。