云码酷 发表于 2025-3-17 11:16:48

保护你的网站代码,屏蔽掉浏览器开发者工具

针对网站禁止他人通过浏览器开发者工具查看代码的需求,以下是综合解决方案及技术实现思路,看看你的网站适合那种方法:


一、前端防护方案
​禁用右键与快捷键
在网站模板的全局文件(如header.htm)中添加JavaScript代码,阻止默认右键菜单和常用开发者工具快捷键(如F12、Ctrl+Shift+I):


document.addEventListener('contextmenu', e => e.preventDefault());
document.addEventListener('keydown', e => {
if (e.key === "F12" || (e.ctrlKey && e.shiftKey && e.key === "I")) {
    e.preventDefault();
    window.location.href = "/"; // 重定向到首页
}
});
​效果:增加基础操作门槛,但无法完全阻止开发者工具。

​检测开发者工具状态
通过JavaScript周期性检测控制台是否打开,触发页面自动刷新或关闭:


setInterval(() => {
const threshold = 160; // 控制台宽度阈值
if (window.outerWidth - window.innerWidth > threshold || window.outerHeight - window.innerHeight > threshold) {
    window.close(); // 或跳转至警告页
}
}, 1000);
​局限性:部分浏览器可能无法准确检测,且用户可通过禁用脚本绕过。


二、代码混淆与加密
​使用代码混淆工具
对前端JavaScript文件(如common.js)进行混淆加密,推荐工具:

​JavaScript Obfuscator​(免费开源)
​JScrambler​(商业级加密)
​效果:大幅增加代码可读性,但无法阻止网络请求抓包分析。
​服务端代码压缩
在Discuz!后台开启“HTML优化”功能(路径:后台→全局→性能优化),启用JS/CSS压缩合并,降低代码可读性。


三、服务器端辅助防护
​增强后台访问控制
参考搜索结果的思路,在admin.php中添加管理员权限验证,防止未授权用户通过URL直接访问敏感路径:

php
// 在admin.php中discuz_init()后添加
if (!$_G['uid'] || !getstatus($_G['member']['allowadmincp'], 1)) {
    header('HTTP/1.1 403 Forbidden');
    exit();
}
​IP访问限制(.htaccess)​
通过服务器配置文件限制后台目录的IP访问(需配合前端防护):

apache
<Files "admin.php">
    Order Deny,Allow
    Deny from all
    Allow from 192.168.1.1 # 允许的IP
</Files>

um89 发表于 2025-3-17 11:19:44

楼猪V5啊

a_6 发表于 2025-3-17 11:30:45

我只是路过,不发表意见

uf8 发表于 2025-3-17 11:41:14

为了三千积分!

2lx1ae 发表于 2025-3-17 11:51:34

支持云码酷

n9_ely 发表于 2025-3-17 12:02:00

无意飘过。。。。支持一下

tqg6j 发表于 2025-3-17 12:12:46

无论是不是沙发都得回复下

ah3n0 发表于 2025-3-17 12:23:13

路过支持,这帖子就像夜空中的星星,要让更多人看到它的光,顶!

r8u 发表于 2025-3-17 12:33:48

看起来不错

v0vm 发表于 2025-3-17 12:44:47

没人回帖。。。我来个吧
页: [1] 2
查看完整版本: 保护你的网站代码,屏蔽掉浏览器开发者工具