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);