Cara Bypass CORS di Electron

CORS adalah singkatan dari "Cross-Origin Resource Sharing". Ini adalah mekanisme keamanan di web browser yang memungkinkan sumber daya web (seperti gambar, skrip, atau font) yang dimuat dari domain yang berbeda untuk digunakan di halaman web yang berasal dari domain lain.

CORS mencegah website dari satu domain mencuri data dari website di domain lain atau mengirimkan permintaan palsu dari website yang berbeda. Mekanisme ini memaksa browser untuk memeriksa header permintaan HTTP yang dikirim dari website yang meminta sumber daya web. Header ini harus mengandung informasi tambahan yang memungkinkan server untuk memutuskan apakah sumber daya web tersebut dapat diakses oleh website yang meminta.

Jika permintaan melanggar kebijakan CORS, browser akan mencegah sumber daya web diakses dan mengembalikan pesan kesalahan dalam konsol pengembang. Oleh karena itu, pengembang web harus memperhatikan kebijakan CORS saat merancang aplikasi web yang memuat sumber daya dari domain yang berbeda.

Anda bisa menggunakan cara ini untuk melakukan bypass CORS pada electron

const win = new BrowserWindow({

    webPreferences: {

        webSecurity: false

    }

});


Alternatif yang lebih aman

const win = new BrowserWindow();

function UpsertKeyValue(obj, keyToChange, value) {
  const keyToChangeLower = keyToChange.toLowerCase();
  for (const key of Object.keys(obj)) {
    if (key.toLowerCase() === keyToChangeLower) {
      // Reassign old key
      obj[key] = value;
      // Done
      return;
    }
  }
  // Insert at end instead
  obj[keyToChange] = value;
}

win.webContents.session.webRequest.onBeforeSendHeaders(
  (details, callback) => {
    const { requestHeaders } = details;
    UpsertKeyValue(requestHeaders, 'Access-Control-Allow-Origin', ['*']);
    callback({ requestHeaders });
  },
);

win.webContents.session.webRequest.onHeadersReceived((details, callback) => {
  const { responseHeaders } = details;
  UpsertKeyValue(responseHeaders, 'Access-Control-Allow-Origin', ['*']);
  UpsertKeyValue(responseHeaders, 'Access-Control-Allow-Headers', ['*']);
  callback({
    responseHeaders,
  });
});




Sumber : https://pratikpc.medium.com/bypassing-cors-with-electron-ab7eaf331605

Posting Komentar

Lebih baru Lebih lama