在做前端安全相关需求时,Javascript这个问题绕不开,刚好把踩坑经验分享一下。
Ready to learn more? Subscribe to our newsletter for weekly tutorials and tips.
正文
Javascript反调试-滥用Chromium Devtools视野镜面板Chromium Devtools视野镜面板
可以允许devtools在主线程被调试器暂停时执行Javascript !我用这个技巧创造了一个非常强大的
跟踪用户完成的调试流程并相应地更改执行流程-查看
作为长期反调试技术研究的一部分,我确实(强烈建议您阅读
如果你从来没有为了了解我的工作的性质而这样做) ,我遇到了一个
这促使我进行了我将在本文中介绍的研究:
这让我想知道它是如何工作的。让我与您分享我的理解:
当您在不打开开发工具的情况下运行上面的代码时,什么也不会发生。但是一旦您打开开发工具,
那里发生的事情是,代码不断记录创建的
一旦devtools被要求记录有关元素的详细信息,它尝试获取以呈现它的详细信息之一是
,因为它是一种非常常用的属性,也是一种重要的属性。因此,通常情况下,如果您创建
但在上面的代码示例中,代码的创建者覆盖了
元素本身具有一个getter ,一个getter函数,当被调用时,它声称确信知道devtools是开放的。
当你想到这一点时,这种确定性实际上是合理的。对此的引用
元素只能通过函数的内部作用域访问
更多内容
除了上面提到的内容,还有几个点值得注意。首先是浏览器的兼容性,不同浏览器对Web Crypto API的支持程度有所不同。其次是性能问题,加密操作在大量数据时可能会影响用户体验。最后是密钥管理,如何安全地存储和传输密钥也是一个需要考虑的问题。
码字不易,觉得有帮助的话点个赞再走~ 如果想了解更多相关内容,可以关注我的博客后续更新。
Reference: Javascript Anti Debugging - Abusing Chromium Devtools Scope Pane
Comments | NOTHING