Electron製アプリのセキュリティ

electronでのデスクトップアプリ開発の学習を久しぶりに続行しようかと思い立って、改めて推奨されるセキュリティを調べてみる。

リモートコンテンツを読み込む場合は「nodeIntegration: false」ってのは以前からあったけど「contextIsolation: true」は初耳。nodeIntegrationをオフる事でプリロードスクリプトにメインプロセスとレンダラープロセスを仲介させることになりますが、プリロードスクリプトはNode.jsにアクセスできるレンダラープロセスであるためこれも安全ではないんだとか。なのでcontextIsolationでプリロードスクリプトとレンダラーも分離してしまい、代わってAPIはcontextBridgeなるモジュールを通してプリロードからレンダラーへ公開するんだと。

なんかよう分からんようになってきました。穴ふさいだり、ちょっと開けたり大変です。contextBridge経由で使いたい分だけ解放してねって事でしょう、「全部拒否、必要なものだけ許可」、セキュリティのキホンですね。

contextBridge.exposeInMainWorld()でAPI Keyを文字列で登録してその下に関数を公開するんですが、コード補完が効かなくなるよね。JavaScriptでやってるのに、型定義ファイル(*.d.ts)を作らなきゃいけなくなってまあメンドクサイ。

続きを読む “Electron製アプリのセキュリティ”

Three.js on Electron + Typescript

Three.jsを動かして見た。ついでに今回はTypescript、あといらんかったけどgulpでトランスパイルの実行。

ビルドタスク(タスクランナー)の事とか、今回は使ってませんがBrowserify(tsify)とかimportとかrequireとかmoduleだの、exportだの、、、何から理解していけばよいやらなかなかはかどりません。UnityとかFlashの開発の容易さを改めて思い知らされました。

ダウンロード: threejs_test2

npm install してnpm run build && start で実行できるハズ。

ところでElectronのダウンロードってやたら時間がかかる事がありますね。> node install.js から止まったまま動いてるのかどうかわからないのが不安なんですが、例えば

$ npm install electron@^1.6.15 --save-dev --loglevel verbose

とすると、詳細な進捗を出力してくれるので、ちょい安心できます。


Alt-AIR

Electronでのアプリ開発をかじり始めました。

Flash Playerは2020年末で終わりますが、Abobe AIRは続くんだそうで(AIR Roadmap Update

まぁ、ホンマか?と。いつまで約束できますん?と。来年には「AIRもやめまーす」なんて事が無いとも限りません。

何件かAIRアプリケーションを納品しており、出来上がったものを別の開発言語で作り直すなんてことは無理としても、AIRの代替のものを探して行きついたところがElectronです。

参考書片手に始めましたが、JavaScriptってこんなんでしたっけ、最近もAfterEffectsのスクリプトを書きましたが、違う。letとかconstとか何?varどこいった?

本当にAIRアプリケーション開発の代替になるかな。

Electronではじめるアプリ開発[Amazon.co.jp]