文字数[1537文字] この記事は2分55秒で読めます.

Electronの脆弱性でアレをtrue設定はNGですよね。

20201123

Logging

Electron(エレクトロン)でrequire(りくわいあ)というものを使用するとエラーになります。Electronの昔のバージョンはこれが使用できたんだって今はこれを脆弱性対策のため、OFF(false)にしている。その設定をtrueにするとOK何だけど、これは公式では認めてない不正解の書き方だとさ。

function createWindow() {
    mainWindow = new BrowserWindow({ width: 800, height: 600 , webPreferences: {
        nodeIntegration: true
	}});

じゃどうするれば良いのか?調べた結果、これが良いみたいです?。下記の書き方はちょっと面倒くさいけれども、こう書かなくては駄目だとさ。requireを使用しない場合はこんな感じで書かなくても良いです。

const path = require('path');
function createWindow() {
    mainWindow = new BrowserWindow({ width: 800, height: 600 , webPreferences: {
        nodeIntegration: false,
        contextIsolation: true,
        preload: path.join(__dirname, "preload.js")
	}});
const { contextBridge, ipcRenderer} = require("electron");
const request = require('request');//使ってないけど?


contextBridge.exposeInMainWorld(
    "hoge_hoge", {
        send: (data) => {
           consloe.log(data);
           document.getElementById("hoge").innerHtml = "Hey!! " + data;
           ipcRenderer.send("Hey!! " + data);
        },
        receive: (data) => {
                consloe.log(data);  
                //ipcRenderer.on(channel, (event, ...args) => func(...args));
        }
    }
);
<button id="btn">Hey!!</button>
<span id="hoge"></span>
<script>
	document.getElementById("btn").addEventListener("click",(e)=>{
		window.hoge_hoge.send("hogeO!!");
	});
</script>

1826番目の投稿です/87 回表示されています.

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

タグ

600, 800, BrowserWindow, const, createWindow, Electron, false, function, Height, mainWindow, new, NG, nodeIntegration, off, OK, path, require, true, webPreferences, Width, アレ, エラー, エレクトロン, これ, ため, バージョン, もの, リグ, 下記, 不正解, , , 使用, 公式, 場合, 対策, 感じ, , 書き方, 結果, 脆弱性, 設定, 駄目,