web 页面阻止用户F12篡改页面元素和数据

web 页面阻止用户F12篡改页面元素和数据

Js代码   收藏代码
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title></title>  
  6. <style type="text/css">  
  7. /*禁止选中文字*/  
  8. body{  
  9. -moz-user-select: none; /*火狐*/  
  10. -webkit-user-select: none; /*webkit浏览器*/  
  11. -ms-user-select: none; /*IE10*/  
  12. -khtml-user-select: none; /*早期浏览器*/  
  13. user-select: none;  
  14. }  
  15. </style>  
  16.   
  17. </head>  
  18.   
  19. <body>  
  20.   
  21.   
  22. <p>Test</p>  
  23. <script type='text/javascript'>  
  24. //这段js要放在页面最下方  
  25. var h = window.innerHeight,w=window.innerWidth;  
  26. //禁用右键 (防止右键查看源代码)  
  27. window.οncοntextmenu=function(){return false;}  
  28. //在本网页的任何键盘敲击事件都是无效操作 (防止F12和shift+ctrl+i调起开发者工具)  
  29. window.onkeydown = window.onkeyup = window.onkeypress = function () {  
  30.     window.event.returnValue = false;  
  31.     return false;  
  32. }  
  33. //如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面  
  34. window.onresize = function () {  
  35.     if (h != window.innerHeight||w!=window.innerWidth){  
  36.         window.close();  
  37.         window.location = "about:blank";  
  38.     }  
  39. }  
  40. /*好吧,你的开发者工具是单独的窗口显示,不会改变原来网页的高度和宽度, 
  41. 但是你只要修改页面元素我就重新加载一次数据,让你无法修改页面元素(不支持IE9以下浏览器)*/  
  42. if(window.addEventListener){  
  43. window.addEventListener("DOMCharacterDataModified"function(){window.location.reload();}, true);  
  44. window.addEventListener("DOMAttributeNameChanged"function(){window.location.reload();}, true);  
  45. window.addEventListener("DOMCharacterDataModified"function(){window.location.reload();}, true);  
  46. window.addEventListener("DOMElementNameChanged"function(){window.location.reload();}, true);  
  47. window.addEventListener("DOMNodeInserted"function(){window.location.reload();}, true);  
  48. window.addEventListener("DOMNodeInsertedIntoDocument"function(){window.location.reload();}, true);  
  49. window.addEventListener("DOMNodeRemoved"function(){window.location.reload();}, true);  
  50. window.addEventListener("DOMNodeRemovedFromDocument"function(){window.location.reload();}, true);  
  51. window.addEventListener("DOMSubtreeModified"function(){window.location.reload();}, true);  
  52. }  
  53.    
  54. //压缩后的代码  
  55. //var h=window.innerHeight,w=window.innerWidth;window.οncοntextmenu=function(){return!1},window.οnkeydοwn=window.οnkeyup=window.οnkeypress=function(){return window.event.returnValue=!1,!1},window.οnresize=function(){(h!=window.innerHeight||w!=window.innerWidth)&&(window.close(),window.location="about:blank")},window.addEventListener&&(window.addEventListener("DOMCharacterDataModified",function(){window.location.reload()},!0),window.addEventListener("DOMAttributeNameChanged",function(){window.location.reload()},!0),window.addEventListener("DOMCharacterDataModified",function(){window.location.reload()},!0),window.addEventListener("DOMElementNameChanged",function(){window.location.reload()},!0),window.addEventListener("DOMNodeInserted",function(){window.location.reload()},!0),window.addEventListener("DOMNodeInsertedIntoDocument",function(){window.location.reload()},!0),window.addEventListener("DOMNodeRemoved",function(){window.location.reload()},!0),window.addEventListener("DOMNodeRemovedFromDocument",function(){window.location.reload()},!0),window.addEventListener("DOMSubtreeModified",function(){window.location.reload()},!0))  
  56.   
  57. </script>  
  58. </body>  
  59. </html>  

    不完美的地方在于不支持IE9以下浏览器,还有就是只适用于展示数据,如果和用户有交互的页面使用不了,因为用户每次修改数据都会导致重新加载页面。

要在Web页面展示部分内容,并且隐藏控制台元素选项,可以采取以下措施: 1. 禁用右键点击:通过在页面上添加JavaScript代码,可以禁用右键点击,从而防止用户通过右键菜单查看页面源代码或检查元素。 ```javascript window.addEventListener('contextmenu', function (e) { e.preventDefault(); }); ``` 2. 禁用F12开发者工具:通过JavaScript代码检测F12按键事件,并阻止其默认行为,可以禁用浏览器的开发者工具。请注意,这种方法并不是完全可靠的,因为用户仍然可以通过其他方式打开开发者工具。 ```javascript window.addEventListener('keydown', function (e) { if (e.keyCode == 123) { // F12键码值为123 e.preventDefault(); } }); ``` 3. 代码压缩和混淆:使用代码压缩和混淆工具对JavaScript、CSS和HTML代码进行处理,使其难以被理解和调试。这样可以增加阻止他人查看和修改页面元素的难度。 4. 监测开发者工具的打开状态:通过JavaScript代码检测开发者工具是否打开,并在检测到开发者工具打开时执行相应操作,例如重定向到其他页面或显示自定义提示信息等。 ```javascript window.addEventListener('devtoolschange', function(event) { // 检测到开发者工具打开时的操作 // 例如,重定向到其他页面或显示自定义提示信息等 }); ``` 请注意,这些措施可以增加阻止调试和查看页面元素的难度,但无法完全防止有经验的用户绕过这些限制。对于保护敏感内容和关键逻辑,更可靠的方法是在服务器端进行权限控制和数据处理,并仅将必要的结果发送到客户端进行展示。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值