-
Notifications
You must be signed in to change notification settings - Fork 309
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nodeIntegrationを無効にする&sandbox=trueにする #1017
Comments
issue作成ありがとうございます! 依存を取り除けてるっぽいのであれば話は簡単で、nodeIntegration無効にとても賛成です。
確認なのですが、こちらはsandbox=true時にfsやpathをimportするとエラーが出る、という認識で合っていそうでしょうか。 |
そうです! もう読んだことがあるとは思いますが、詳細はsandboxのドキュメントをご覧ください。 |
なるほどです!preload.ts見てみた感じ、fsとpathはまあまあ使われてますが、全部メイン側に移行しても良さそうだなと感じました! |
がマージされました・・・! |
あ、sandboxがまだoffなのでこれは開いたままの方がいいかも…? |
タイトル変えてReopenしますか! |
内容
現状、Electronの
nodeIntegration
が有効になっていますが、これはセキュリティ的に大変よろしくないので、無効にするべきです。また、 #1002 で少し触れられている
sandbox
も有効にするべきだと思います。Pros 良くなる点
セキュリティの強度が上がる
Cons 悪くなる点
renderer側のコードでNodeJSの機能が使用できなくなる
実現方法
renderer側のコードでNodeJSの機能が使われている箇所を、使用しないコードに置き換える。
sandbox
も有効にする場合は、preloadでも使わないようにする。その他
試しに
nodeIntegration
を無効にしてみたところ、特に問題なく動いていそうでした。というより、fsモジュールは有効だろうが無効だろうが使えなかったので、もしかしたら既に勝手に無効になっているのかもしれません…。
EditorHome.vue
等でpathモジュールが使われていたりしますが、これはpolyfill的なのが差し込まれていそうです。webpackの依存関係にある
node-libs-browser
の中身を見てみると、fsはnullでpathにはpath-browserify
が使われているようです。これは #1000 を実行する場合に少し問題になりそうです。
sandbox
を有効にすると流石にmodule not found
エラーがでました。The text was updated successfully, but these errors were encountered: