7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

electronでリファラコントロール

Last updated at Posted at 2016-07-29

リファラとは、リンクをクリックして別ページに移動した際のリンク元のページのことです。

例えば、pixivのイラストはリファラ制御されていて、直接見ようとすると403が表示されます。
しかし、リファラは偽装可能です。
例えば、chromeでは、Referer Controlなどの拡張機能を使うことでリファラ偽装ができます。

chromeでできることはelectronでもほぼ可能なので、以下のコードを挟めば対処できます。

	win.webContents.session.webRequest.onBeforeSendHeaders((detail, cb) => {
		let {requestHeaders} = detail;
		requestHeaders = Object.assign(requestHeaders, {Referer: 'http://www.pixiv.net'});
		cb({requestHeaders});
	}, {
		urls: ['<all_urls>'],
		types: ['xmlhttprequest']
	});

が、いささかボイラーテンプレートなコードなので、ライブラリを使うことをオススメします。

akameco/electron-referer: Referer control for Electron app.

インストール

$ npm install --save electron-referer

使い方

const {app, BrowserWindow} = require('electron');

require('electron-referer')('http://www.pixiv.net/');

let win;

app.on('ready', () => {
  win = new BrowserWindow();
});

制御したいurlを引数に入れればリファラの偽装は完了です。

akameco/electron-referer: Referer control for Electron app.

7
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?