`

web 页面近乎完美阻止用户F12篡改页面元素和数据

 
阅读更多
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style type="text/css">
/*禁止选中文字*/
body{
-moz-user-select: none; /*火狐*/
-webkit-user-select: none; /*webkit浏览器*/
-ms-user-select: none; /*IE10*/
-khtml-user-select: none; /*早期浏览器*/
user-select: none;
}
</style>

</head>

<body>


<p>Test</p>
<script type='text/javascript'>
//这段js要放在页面最下方
var h = window.innerHeight,w=window.innerWidth;
//禁用右键 (防止右键查看源代码)
window.oncontextmenu=function(){return false;}
//在本网页的任何键盘敲击事件都是无效操作 (防止F12和shift+ctrl+i调起开发者工具)
window.onkeydown = window.onkeyup = window.onkeypress = function () {
	window.event.returnValue = false;
	return false;
}
//如果用户在工具栏调起开发者工具,那么判断浏览器的可视高度和可视宽度是否有改变,如有改变则关闭本页面
window.onresize = function () {
	if (h != window.innerHeight||w!=window.innerWidth){
		window.close();
		window.location = "about:blank";
	}
}
/*好吧,你的开发者工具是单独的窗口显示,不会改变原来网页的高度和宽度,
但是你只要修改页面元素我就重新加载一次数据,让你无法修改页面元素(不支持IE9以下浏览器)*/
if(window.addEventListener){
window.addEventListener("DOMCharacterDataModified", function(){window.location.reload();}, true);
window.addEventListener("DOMAttributeNameChanged", function(){window.location.reload();}, true);
window.addEventListener("DOMCharacterDataModified", function(){window.location.reload();}, true);
window.addEventListener("DOMElementNameChanged", function(){window.location.reload();}, true);
window.addEventListener("DOMNodeInserted", function(){window.location.reload();}, true);
window.addEventListener("DOMNodeInsertedIntoDocument", function(){window.location.reload();}, true);
window.addEventListener("DOMNodeRemoved", function(){window.location.reload();}, true);
window.addEventListener("DOMNodeRemovedFromDocument", function(){window.location.reload();}, true);
window.addEventListener("DOMSubtreeModified", function(){window.location.reload();}, true);
}
 
//压缩后的代码
//var h=window.innerHeight,w=window.innerWidth;window.oncontextmenu=function(){return!1},window.onkeydown=window.onkeyup=window.onkeypress=function(){return window.event.returnValue=!1,!1},window.onresize=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))

</script>
</body>
</html>

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

分享到:
评论

相关推荐

    js屏蔽F12审查元素,禁止修改页面代码等实现代码

    在JavaScript编程中,有时开发者需要保护网页不被用户通过开发者工具(如F12或右键菜单)轻易篡改,以防止源代码被查看或恶意修改。本文将详细讲解如何使用JavaScript来实现屏蔽F12审查元素以及禁止修改页面代码的...

    chrome F12 根据类名找CSS及动画.zip

    这个名为"chrome F12 根据类名找CSS及动画.zip"的压缩包文件,显然是为了帮助用户了解如何在Chrome浏览器中通过F12工具来查找和分析CSS样式以及动画效果。下面我们将详细探讨这个主题。 首先,Chrome的F12开发者...

    JS禁止浏览器右键查看元素或按F12审查元素自动关闭页面示例代码

    很多站长为了仿止别人仿制或扒下自己的网页,都会选择使用禁止浏览器右键查看元素或F12审查元素,一旦查看元素浏览器页面就会自动关闭,下面话不多说了,来一起看看详细的介绍吧。 注:该代码不兼容火狐浏览器,对于...

    一款仿微信支付的html页面,让你随时随地的装逼,F12随时改

    我们需要学习如何使用CSS选择器选取元素,以及掌握盒模型、定位、过渡和动画等技巧,以实现仿微信支付页面的细节呈现,如按钮样式、背景图片和支付流程提示的动态效果。 【知识点三】:JavaScript交互逻辑 `script....

    H5缺省页(pc端禁止f12调试等操作)

    标题“H5缺省页(pc端禁止f12调试等操作)”提到的技术就是针对这种情况,旨在防止用户在PC端使用F12开发者工具对页面进行调试。这一方法主要依赖于JavaScript来实现,因此涉及到的知识点主要包括H5、前端技术和...

    使用S7-1500的Web服务器通过本地的HTML读写PLC中的数据_示例.docx

    这个HTML页面可以包含输入框、按钮等元素,以供用户输入读取或写入的变量名。注意,变量名前应加上冒号,例如:“:VAR_NAME”。 在浏览器中打开这个HTML文件,按下F12以打开开发者工具,选择“Console”面板。这将...

    F12调试几个返回值的说明1

    在进行Web应用开发和调试时,浏览器的F12开发者工具是不可或缺的辅助工具,它可以帮助我们快速定位和解决问题。本文将重点解析F12调试页面中常见的几个返回值及其对应的处理方法,主要针对网络协议、Java服务器以及...

    rl78f12.pdf

    《RL78/F12用户手册》是瑞萨电子公司发布的一份关于16位单片机的数据手册,主要介绍了RL78/F12芯片的详细功能和使用方法。手册内容涵盖多个关键方面,旨在帮助设计者理解和应用该微控制器。 1. **概述(OUTLINE)** ...

    禁用F12功能的实验小demo

    这通常在防止用户篡改页面元素、抓取敏感数据或者进行非法操作时有所应用。 开发者工具是Web开发人员的强大辅助工具,但对普通用户开放可能会导致网站的不安全。因此,一些网站选择禁用这一功能。然而,需要注意的...

    树形数据的反选有两种方法以及处理后台返回拼装htmL的异步获取不到现象(但是页面F12可以看到)

    有时,虽然浏览器的开发者工具(如F12)显示请求成功并返回了数据,但页面上却无法正确显示。这种情况可能由以下原因造成: 1. **回调函数错误**:确保在Ajax的success或done回调中正确处理返回的数据,将其转换为...

    使用F12的一些基本排查技巧.doc

    F12 是浏览器中的一个非常强大且实用的开发者工具,它提供了多种功能,帮助开发者快速排查和解决问题。下面将介绍使用 F12 的一些基本排查技巧,以 Google 浏览器为例。 1. 元素(Elements)页面布局、样式排查 在...

    F12 开发人员工具调试网页 入门教程

    ### F12开发人员工具调试网页入门教程 #### F12开发人员工具简介 F12开发人员工具是一组强大的工具集,内置于Windows Internet Explorer 9中,旨在帮助网站开发人员快速调试网页上的JavaScript、HTML及CSS等问题,...

    web服务器缓存实现原理,通过chrome f12观察web服务器缓存

    web服务器缓存实现原理,通过chrome f12观察web服务器缓存 后台action命中缓存hit Via X-cache X-Cache-Lookup

    谷歌浏览器F12汉化版

    总的来说,"谷歌浏览器开发者汉化版"提供了一种更适合中国用户的浏览和开发体验,F12键激活的汉化开发者工具使得Web开发工作更加便捷,无论对于初学者还是经验丰富的开发者,都是一个非常实用的选择。如果你是Web...

    使用 F12 开发人员工具调试 HTML 和 CSS

    F12工具会显示最终呈现给用户的HTML和CSS代码,而不是最初的HTML源码。这种特性使得调试变得更加直观和有效。 - **视图更新**:如果你修改了某个元素的属性但没有立即看到效果,可以通过在“HTML”选项卡中按下`F5`...

    数据挖掘与数据管理-逆向分析请求页面.pptx

    动态加载数据是指网页的部分内容不是一次性加载完成,而是通过JavaScript等技术在用户滚动页面或者触发某些事件时动态生成和更新。这种技术在提高用户体验、减少服务器压力方面具有显著优势,但也给网络爬虫带来挑战...

    C8051F12x-13x中文数据手册

    这份手册详细介绍了C8051F12x-13x系列单片机的特性和功能,旨在帮助用户更深入地理解和运用这些芯片。下面,我们将从几个主要方面详细阐述这份手册中的关键知识点。 1. **架构与体系** C8051F12x-13x系列基于高...

    scrapy结合selenium解析动态页面的实现

    虽然scrapy能够完美且快速的抓取静态页面,但是在现实中,目前绝大多数网站的页面都是动态页面,动态页面中的部分内容是浏览器运行页面中的JavaScript脚本动态生成的,爬取相对困难; 比如你信心满满的写好了一个...

    360快速浏览器,web开发调试工具

    首先,360快速浏览器基于开源的Chromium项目,因此它的开发者工具与Google Chrome浏览器的DevTools非常相似,提供了丰富的功能和友好的用户界面。开发者可以方便地在浏览器中直接打开这些工具,通常通过按F12或者...

Global site tag (gtag.js) - Google Analytics