AI摘要

本文介绍了七种方法来防止用户通过F12开发者工具调试网页。包括使用JavaScript禁用F12键、CSS禁用右键菜单和上下文菜单、设置内容安全策略(CSP)限制资源加载、使用HTTPS防止中间人攻击、混淆代码增加阅读难度、服务端渲染减少客户端JavaScript执行以及使用debugger阻止调试。这些方法可以提高网页的安全性,防止恶意用户通过开发者工具进行攻击或窃取信息。

1. 使用JavaScript禁用F12

document.addEventListener('keydown', function(e) {
    if (e.keyCode === 123) { // F12键的键码
        e.preventDefault();
        alert('开发者工具已被禁用!');
    }
});

2. 使用CSS禁用右键菜单

body {
    -webkit-user-select: none; /* 禁用选择文本 */
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    
    -webkit-user-drag: none; /* 禁用拖动元素 */
    user-drag: none;
}
 
/* 禁用右键菜单 */
body {
    -webkit-touch-callout: none;
    -webkit-user-select: none;
    -khtml-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
}
 
/* 禁用上下文菜单 */
document.addEventListener('contextmenu', function(e) {
    e.preventDefault();
}, false);

3. 使用CSP策略

通过设置内容安全策略(CSP),可以限制浏览器加载某些类型的资源,包括内联脚本,这可能有助于防止某些类型的调试。

<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'">

4. 使用HTTPS

确保你的网站使用HTTPS,这样可以防止中间人攻击,从而减少用户通过代理服务器查看网页内容的可能性。

5. 混淆代码

虽然这不是直接阻止F12的方法,但可以通过混淆JavaScript代码来增加他人阅读和理解代码的难度。

6. 使用服务端渲染

通过服务端渲染(SSR)生成HTML,可以减少客户端JavaScript的执行,从而减少用户通过开发者工具查看源代码的机会。

7.使用debugger阻止

setInterval(function() {
 
            var startTime = performance.now();
              // 设置断点
            debugger; 
            var endTime = performance.now();
               // 设置一个阈值,例如100毫秒
            if (endTime - startTime > 100) {
                window.location.href = 'about:blank';
            } 
            
        }, 100);
最后修改:2024 年 11 月 20 日
如果觉得我的文章对你有用,请随意赞赏