随着区块链技术的发展,以太坊作为重要代表已经得到越来越多的关注和应用。然而,随着以太坊的普及和后续开发的过程中,网络安全问题也愈发凸显。恶意的 phishing(钓鱼)攻击一直是以太坊生态系统的一大隐患。eth-phishing-detect是npm平台上针对这个问题的一个工具包,本文将介绍其使用教程。
eth-phishing-detect简介
eth-phishing-detect是一个 JavaScript 包,可以用于检测以太坊交易页面的钓鱼风险。它可以在本地使用,也可以集成到基于 Web 的以太坊应用程序中。此外,该模块还能够以大约1 MB左右的大小对网络进行一次完整的基于Web的钓鱼网站扫描。该工具包目前支持谷歌和火狐浏览器,并且是 MIT 许可证下免费公开发布的。
安装 eth-phishing-detect
使用 eth-phishing-detect 首先需要在本地打开一个 Node.js 的环境,如果没有请先安装。然后通过以下命令安装 eth-phishing-detect:
npm install eth-phishing-detect
安装完成后,在需要使用该包的文件中引入即可,比如:
const detectPhishing = require('eth-phishing-detect')
eth-phishing-detect使用
API
在本地使用时,使用 detectPhishing 方法即可,它的返回值是一组规则列表,如果需要将结果输出到控制台或者其他地方,则需要用 console.log 或类似函数进行打印或存储。下面是一个示例:
const detectPhishing = require('eth-phishing-detect') const url = 'http://www.ethereum.org/transfer.html?to=0x153c7950c0b8f2c2ac60254f6e125d9ae8b80411' detectPhishing(url).then((result) => { console.log(result) }).catch((error) => { console.error(error) })
结果将会输出以下内容:
-- -------------------- ---- ------- -- -------------- ----- -- --- --- -------- -------- ------ ------------ ----- ------- ----------- ----------------- ------------- -- ---------- - -------------------------------------------- ------------------------------------- -------------------------------------------------- -- ------- -------- ------- --------- ------ -- --
该结果表示,当前页面存在以太坊钓鱼风险,详细信息可看 description。matches 列表表示当前页面所匹配到的所有以太坊钓鱼网站。
除了以上 API,eth-phishing-detect还提供了以下过滤选项:
ignore_non_text: true
:忽略图像和其他非文本内容。ignore_known_false_positives: true
:忽略检测已知假阳性的匹配项。mode: 'regex'
:将包括正则表达式,以匹配 URL 中的突出部分。mode: 'string'
:将字符串模式匹配到 URL 中的注重部分之一。mode: 'substring'
:将一个子字符串匹配到 URL 中的突出部分(即,以“?”或“#”字符结尾的部分)。
集成到Web应用程序中
如果需要将 eth-phishing-detect 集成到 Web 应用程序中,则需要将其打包处理成一个可以引入的js 文件。可通过 webpack 或者 browserify 等工具,将它们打包成最终的代码。然后将该文件中的 detectPhishing 方法赋值给全局对象,在必要的时候即可使用。
下面是一个打包示例:
npm install webpack -g // 全局安装 webpack npm install webpack-cli -g // webpack-cli 需要全局安装 webpack example.js --output example-bundle.js
example.js文件中包含了打包好的 eth-phishing-detect 文件的引用、需要检测的页面 URL 变量和检测结果的输出字段。
-- -------------------- ---- ------- -- ---------- ----- -------------- - ------------------------------ ----- --- - -------------------------------------------- --------------------------------- -- - ------------------- ---------------- -- - -------------------- --
将打包后的 example-bundle.js 文件引入到 HTML 文件中即可:
-- -------------------- ---- ------- --------- ----- ------ ------ ----------- --------------- ------- ------ ------- ----------------------------------- ------- -------
当然,这只是个例子,具体的打包过程还需根据自身应用做出调整。
eth-phishing-detect使用示例
下面是一个检测以太坊交易页面的钓鱼风险示例:
const detectPhishing = require('eth-phishing-detect') const url = 'http://www.ethereum.org/transfer.html?to=0x153c7950c0b8f2c2ac60254f6e125d9ae8b80411' detectPhishing(url).then((result) => { console.log(result) }).catch((error) => { console.error(error) })
总结
eth-phishing-detect是一个简单易用的检测以太坊交易页面钓鱼风险的工具包,无论是在本地使用还是在 Web 应用程序中使用都十分方便。该工具包提供了丰富的 API 接口,可以根据实际应用做出相应的调整。在后续的以太坊项目开发中,使用 eth-phishing-detect 可以大大提高项目的安全性,减少钓鱼攻击所带来的损失。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/204194