如何使用Javascript禁用功能键?
我有一个页面,我需要禁用功能键,主要是F12Developertools。 我在页面中显示了一些敏感数据,因此在任何情况下,我都无法让用户看到html并获取隐藏字段。 我检查了一些javascript,除了f1、f12等功能键外,它几乎可以处理所有键 我是否可以在浏览器中禁用这些按钮如何使用Javascript禁用功能键?,javascript,asp.net,browser,browser-history,Javascript,Asp.net,Browser,Browser History,我有一个页面,我需要禁用功能键,主要是F12Developertools。 我在页面中显示了一些敏感数据,因此在任何情况下,我都无法让用户看到html并获取隐藏字段。 我检查了一些javascript,除了f1、f12等功能键外,它几乎可以处理所有键 我是否可以在浏览器中禁用这些按钮 document.onkeyup = KeyCheck; function KeyCheck() { var KeyID = event.keyCode; alert(KeyID); swi
document.onkeyup = KeyCheck;
function KeyCheck() {
var KeyID = event.keyCode;
alert(KeyID);
switch (KeyID) {
case 123: //F12 KEY CODE
alert('hello');
return false;
break;
}
}
这是我用来重写密钥的代码。当我搜索时,F12键的键代码是123,我使用相同的代码覆盖它。但不幸的是,它甚至没有击中的情况下,并没有出现消息框时,按F12,F1等按钮
请帮我做这件事
document.onkeydown = KeyCheck;
成功了 当您发送javascript数据时,没有可靠的方法防止用户篡改它。始终使用服务器端检查来验证返回的数据 人们仍然可以使用浏览器的菜单来启用开发人员控制台。或者通过右键单击->检查元素,或者使用热键打开控制台的不同部分,然后在控制台中切换到另一个页面,或者使用我没有提到的热键之一。 或者,他们可以简单地禁用javascript。或者编辑javascript以禁用该块 现在,您可以通过添加一个:
event.preventDefault在您的事件侦听器中,但仍然不可靠。不,您不能通过页面上的JavaScript查看源代码/开发人员工具或浏览器的任何其他应用程序级功能 有很多方法可以查看网页的来源。限制所有外部方访问/存储/查看HTML是一项非常艰巨的任务。以下是您必须禁用的其他内容的部分列表: 代理,包括HTTP调试器/代理,如Fiddler或内置于浏览器中的代理。 直接从控制台工具(如curl)获取请求。 各种各样的网络爬虫,包括像谷歌这样的搜索引擎。 使用HTTPS,不要发送敏感信息,除非严格要求,这是比限制用户对其机器的操作更简单的保护方法。尝试以下方法:
<script language="JavaScript">
document.onkeypress = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
//alert('No F-12');
return false;
}
}
document.onmousedown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
//alert('No F-keys');
return false;
}
}
document.onkeydown = function (event) {
event = (event || window.event);
if (event.keyCode == 123) {
//alert('No F-keys');
return false;
}
}
</script>
这段代码非常适合我禁用右键单击和禁用F12
当用户按F12键时,浏览器开发人员工具栏将在浏览器的下面部分打开 通过使用开发者工具栏,用户可以看到页面中控件的设计、javascript代码和相应的css。为了防止用户这样做,我们将隐藏开发者工具栏
答案是你不应该通过网络发送敏感数据。禁用F12可能会禁用在一个浏览器上进入开发人员工具的一种方法。但是如果有人点击菜单选项怎么办?更不用说敏感数据对任何一个稍有知识的人来说都是可见的。即使没有控制台,我也可以很容易地获取数据或解开你的保护,或者用Tampermonkey或Greasemonkey挂上我自己的控制台。即使你禁用F12,我也可以按Ctrl+Shift+I,甚至没有意识到F12被禁用。@JanDvorak。我想OP也可以赶上Ctral+Shift+I,但这可能很快就会失控,对吧?我的意思是,不同的浏览器是否都有相同的控制台组合键?我有点怀疑。@Cerbrus你只需F12、Ctrl+Shift+I和右键单击就可以杀死流行的五个FF+IE+O+WK的所有快捷键,但你不能杀死它们各自的菜单项,你不能杀死Tampermonkey,你不能杀死Fiddler…如果只禁用代理是可能的,这将使IP禁令更加可靠:P除了简单的IP之外changes@Cerbrus,:我还应该添加搜索引擎,例如谷歌。。。很明显,你的答案+1更严重。嗯,我甚至没有想到那些蜘蛛。谢谢,DAlso,请考虑把这个标记为你的答案。我意识到这并不完全是你想要的答案,但这是程序员生活中的硬事实:语言决定可用的功能。使用addEventListener,而不是将事件硬编码到文档中。初始化函数,然后在代码中按名称引用函数。最后,mousedown事件没有键码。顺便说一句,我从中得到了它……然后那个家伙应该因为发布了糟糕的代码而被打脑袋-但它是有效的,我想这很好我认为我在回答如何使用Javascript禁用函数键这个问题上做出了贡献?只是分享我的发现..它将覆盖用户键入这些键。但他们仍然可以使用菜单获取一些信息。
<script language=JavaScript>
var message="You Have No Permission";
function clickIE4(){
if (event.button==2){
alert(message);
return false;
}
}
function clickNS4(e){
if (document.layers||document.getElementById&&!document.all){
if (e.which==2||e.which==3){
alert(message);
return false;
}
}
}
if (document.layers){
document.captureEvents(Event.MOUSEDOWN);
document.onmousedown=clickNS4;
}
else if (document.all&&!document.getElementById){
document.onmousedown=clickIE4;
}
document.oncontextmenu=new Function("alert(message);return false")