什么是 esotope-hammerhead?
esotope-hammerhead 是一款基于 esotope 的转译工具,它用于处理 JavaScript 代码中出现的安全问题,在保证代码执行正确性的同时保护网页内容安全,可以用于前端的安全加固。
如何安装 esotope-hammerhead?
使用 npm 可以很方便的进行安装:
$ npm install esotope-hammerhead
如何使用 esotope-hammerhead?
可以直接引入 esotope-hammerhead 进行使用,具体代码如下:
-- -------------------- ---- ------- ----- ------- - ------------------------------ ----- ---------- - - ------------------ ------- -- ----- ------------- - --------------------------- ---------------------------
esotope-hammerhead 的使用场景
esotope-hammerhead 适用于前端代码安全加固的场景,比如混淆代码、防止 XSS 攻击等。
1. 混淆代码
可以使用 esotope-hammerhead 将 JavaScript 代码进行混淆处理,避免源码的泄露,提高代码的安全性。
-- -------------------- ---- ------- ----- ------- - ------------------------------ ----- ---------- - - -------- ------ -- - ------ - - -- - -- ----- ------------- - --------------------------- ---------------------------
上述代码进行混淆过后的结果如下:
const c = ["\xc2\x88\xcc\x8d\xcc\x86\xcc\x86\xcc\x86"],\xcd=\u0027\x66\x75\x6e\x63\x74\x69\x6f\x6e\x20\x61\x64\x64\x28\x61\x2c\x20\x62\x29\x20\x7b\x20\x72\x65\x74\x75\x72\x6e\x20\x61\x20\x2b\x20\x62\x3b\x20\x7d\x27;\x0a\r\nconsole[\x63[0]+c.join(c[0])+c[0]](\xac\x1d\x1d\x06c\x04\x02\xac\x20\xbe\x22s\x85\xa4\x0f\x18\x8f\x1b\x1c\xb9\xd9\x9a\xd8\xeb\x7e\xef\xe3\xe7\xb0\xb8\x2e\x12\x22\x3f\x3a\x68\xa5\x5f\x10\x85\xa2\x35\x23\xc8\xbd\x86\x0a\x26\x72\x7f\x85\x60\xaf\x97\xde\x37\xf0\xcb\xe2\xab';
可以看到,混淆后的代码发生了很大的变化,但是运行结果仍然是正确的。
2. 防止 XSS 攻击
可以使用 esotope-hammerhead 将输入的数据进行编码处理,防止恶意脚本代码的注入,保证网页内容的安全。
-- -------------------- ---- ------- ----- ------- - ------------------------------ ----- ---------- - - -------- ----------- - ----- --- - ------------------------------ ------------- - ------ ------------------------------- - -- ----- ------------- - --------------------------- ---------------------------
使用 esotope-hammerhead 处理后的代码:
var c = ['\xc2\x88\xcc\x8d\xcc\x86\xcc\x86\xcc\x86'], \xcd = '\'\\x66\\x75\\x6e\\x63\\x74\\x69\\x6f\\x6e\\x20\\x73\\x68\\x6f\\x77\\x28\\x69\\x6e\\x70\\x75\\x74\\x29\\x20\\x7b\\x20\\x76\\x61\\x72\\x20\\x64\\x69\\x76\\x20\\x3d\\x20\\x64\\x6f\\x63\\x75\\x6d\\x65\\x6e\\x74\\x2e\\x63\\x72\\x65\\x61\\x74\\x65\\x45\\x6c\\x65\\x6d\\x65\\x6e\\x74\\x28\\x27\\x64\\x69\\x76\\x27\\x29\\x3b\\x0a\\x0a\\x20\\x20\\x20\\x20\\x64\\x69\\x76\\x2e\\x69\\x6e\\x6e\\x65\\x72\\x48\\x54\\x4d\\x4c\\x20\\x3d\\x20\\x69\\x6e\\x70\\x75\\x74\\x3b\\x0a\\x0a\\x20\\x20\\x20\\x20\\x64\\x6f\\x63\\x75\\x6d\\x65\\x6e\\x74\\x2e\\x62\\x6f\\x64\\x79\\x2e\\x61\\x70\\x70\\x65\\x6e\\x64\\x43\\x68\\x69\\x6c\\x64\\x28\\x64\\x69\\x76\\x29\\x3b\\x0a\\x7d";\nconsole[c[0] + c.join(c[0]) + c[0]](\xcd);\n';
可以看到,使用 esotope-hammerhead 处理后的代码会将输入的内容进行编码,防止恶意脚本代码的注入。
esotope-hammerhead 的应用
esotope-hammerhead 可以用于多个场景,比如前端代码的安全加固、防止恶意脚本的注入等,它可以提高网页的安全性,让用户更加放心的使用网页服务。
结论
通过上述的使用教程,我们可以知道在前端代码的安全加固中,esotope-hammerhead 是一款非常好用的工具,可以帮助我们解决代码中存在的安全问题,增强网页的安全性,建议大家在实际项目中去尝试使用。
参考资料
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/71016