Firebaseが有名になってきました
皆さま、こんにちは。ProgLearn編集部です。
昔は(今もですが)、フロントエンドエンジニア・サーバサイドエンジニアというように、自分が専門的に担当する分野によって別れていました。
しかし、その垣根は近年どんどんなくなってきています。
その流れを象徴するものがGoogleが提供するFirebaseです。
サーバサイドと連携をする言語としてPHPが広く利用されていますが、最近ではJavaScriptでもサーバとの連携が可能になりました。Firebaseもその一つです。
運営者はFirebaseから提供されるAPIキーをGetしてFirebaseが提供するサンプルプログラムにそのAPIキーを挿入するだけで簡単にデータベース機能を利用することが出来てしまうのです!
Vagrant や Docker で mySQL 入りの環境をセットアップして、それをサーバに適用して…といった面倒な手間が一切かかることなくデータの保存、利用ができるようになるので、JavaScriptを記述していたエンジニアを中心にFirebaseで製品のモックアップを作成して公開するエンジニアが増えてきています。
でも、APIキーは生で書いちゃだめ!!!
ここで、気をつけなければならないことがあります。それは、APIキーはJavaScriptにベタ書きしないということです。
自分しかアクセスが出来ない環境下ならばそれでも構いませんが、もし公開するプログラムを記述するときは絶対にJavaScriptのコードにベタ書きをしてはいけません。
なぜならば、JavaScriptは(node.jsなどサーバサイドで使われれるフレームワークを除き)クライアントサイド、つまり各ユーザのブラウザ上で実行されます。
ということは、このように、JavaScriptのファイルがどのような記述がされているかが丸分かりになってしまいます。
例えば、
これをクリックすると、
こんな感じで、どんなことが書かれているのかが全て丸分かりになっちゃうんです!!
ということはもうお分かりですね?
JavaScriptにFirebaseのAPIキーを公開してしまうと、APIキー、つまり自分の秘密情報アクセスできる鍵が他人に公開され、他人でも利用できる状態になってしまうのです!
ちなみに、githubなどに鍵がついたコードをアップロードしようとするとgithub側でwarningを出してくれます。そんな特別対応のロジックがgithubに組み込まれているくらい、apiキーは慎重に取り扱わなくてはいけないのです。
便利な世の中だからこそ気をつけよう
Firebaseなどの便利なサービスがどんどん出現し、知識が浅い人々でも実現できることの幅がどんどん広がっています。
しかし、便利度とセキュリティの堅牢度はトレードオフです。そして、その違いに注意を払うことができるのは自分自身だけです。
皆さんも、自分のアプリを公開するとき、公開してはいけない情報が丸見えになっていないか、注意するようにしましょう!!!