最近在写项目的时候正好涉及到Javascript,顺手整理了一下相关资料。
Found this helpful? Share it with your team and leave a comment below!
正文
有时在抓取某些网站时,您会查看JavaScript代码,它看起来
就像一个完全无法阅读的混乱-无论你眯了多少眼睛,你都不能
理解它。那是因为它已经被混淆了。代码混淆是一种转变
这意味着代码难以阅读和逆向工程。许多网站利用
JavaScript混淆使爬虫/自动化开发人员难以处理问题。
考虑以下非常简单的Javascript语句:
我们将讨论各种混淆方法。为了让事情更清楚,我们将
一次一种混淆技术,并举例说明每种技术如何改变这种
代码的形式是不可读的。然而,应该注意的是,通常
在防刮网站中使用多种混淆方法。
我们将尝试一些混淆JS代码的在线工具。十六进制字符串编码
并关闭所有复选框,但“编码字符串”混淆的代码将如下所示:
"\ x48\ x65\ x6C\ x6C\ x6F\ x2C\ x20\ x77\ x6F\ x72\ x6C\ x64\ x21\ x20"
硬编码字符串的每个ASCII字符都被转换为十六进制形式,可以
在程序员模式下使用计算器验证。这很常见,但相当薄弱
更多内容
除了上面提到的内容,还有几个点值得注意。首先是浏览器的兼容性,不同浏览器对Web Crypto API的支持程度有所不同。其次是性能问题,加密操作在大量数据时可能会影响用户体验。最后是密钥管理,如何安全地存储和传输密钥也是一个需要考虑的问题。
篇幅原因就先写这么多,后面有空会再补充更多实战案例。有问题评论区见。
Reference: Javascript obfuscation techniques by example – Trickster Dev