本文中,苏南大叔讲述一下electron的几个邪门使用方式。为啥说是邪门方式呢?因为正常的程序不会这么干的。那就是:修改user-agentreferer,也就是伪装客户端信息,用于欺骗特定的远程服务器网页。当然,在具体操作的时候,都是很多种欺骗方式的组合,本文中描述的手段仅仅是初级入门级别的。

苏南大叔:electron如何伪装ua及referer,欺骗远程服务器? - electron-ua-referer
electron如何伪装ua及referer,欺骗远程服务器?(图4-1)

本文测试环境:win10/electron@5.0.6/electron-quick-start

检测uareferer

本文的配套龙套代码是基于php的,代码如下:

echo $_SERVER["HTTP_USER_AGENT"];
echo $_SERVER['HTTP_REFERER'];

同时,用js有可以检测uareferer,代码如下:

alert(document.referrer);
alert(navigator.userAgent);
请注意js中的referrer比常见的referer多一个字母r

为什么,苏南大叔在这里给出了两套检测方案呢?那是因为市面上有几个方案,其欺骗效果,是通不过js检测的,这个留作后话。

苏南大叔:electron如何伪装ua及referer,欺骗远程服务器? - remote-check-code
electron如何伪装ua及referer,欺骗远程服务器?(图4-2)

默认uareferer

默认ua

对于本文的electron@5.0.6来说,默认的ua是:

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) electron-quick-start/1.0.0 Chrome/73.0.3683.121 Electron/5.0.6 Safari/537.36

可以看到,这个ua里面,居然有electron项目名称及版本号electron-quick-start/1.0.0,而且有Electron的版本号Electron/5.0.6。这个ua,简直有泄密的嫌疑啊。

默认referer

默认的referer是空,所以,这里不做特殊说明了。

修改uareferer

本文中的方案是利用loadUrl这个函数,来做修改的。所以,您的目标如果不能用loadUrl加载的话,就可能需要看其他的方案了。这里可能不是太适合您。

function createWindow () {
  //...
  mainWindow.loadURL('http://remote/check.php',{userAgent: 'Chrome',httpReferrer:"http://www.baidu.com/"});
  //...
}
注意两个主要参数的单词拼写userAgenthttpReferrer,可能和传统认知是有区别的。

苏南大叔:electron如何伪装ua及referer,欺骗远程服务器? - main-loadurl-referer
electron如何伪装ua及referer,欺骗远程服务器?(图4-3)

下面的图,是本方案的测试结果:

苏南大叔:electron如何伪装ua及referer,欺骗远程服务器? - modify-referer-result
electron如何伪装ua及referer,欺骗远程服务器?(图4-4)

特殊说明

所以,本文的方案的成功,需要重点说明的是:

  • loadUrl,意思就是加载的远程地址,而不是本地的electron内部的html页面。loadFile没有相关参数。
  • loadUrl方案,可以通过服务器端检测和本地js检测两种。

还可以通过loadUrl定义更多的header,具体的可以参照官方文档。值得说明的是:只有userAgenthttpReferrer是被特殊提出来的参数,其他的header都被放在一个参数extraHeader里面了。可见,修改这两个参数的几率,是有多么的高。

相关文章

总结

对于修改userAgentreferrer来说,本文仅仅是其中的一个简单方案。更多方案,请参考苏南大叔的后续electron经验文章:

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留链接作者。
本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
未经许可,规模化镜像抄袭本站内容的行为,将会根据有关法律法规进行维权。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。

 【加群】加入QQ群【175454274】和大家一起讨论这个问题

 【源码】本文代码片段及相关软件,请点此获取

 【绝密】秘籍文章入口,仅传授于有缘之人   electron

本站的忠实读者小伙伴,正在阅读下面这些文章: