防止在文本字段中检查元素

时间:2019-02-15 07:23:12

标签: php codeigniter inspect-element

这是我的输入字段禁用代码

<input type="text" class="empl_date form-control" id="staffid" name="staffid" value="<?php echo $employeeworks[0]['employeeCode'];?>" arsley-maxlength="6" placeholder=" Schedule Date"  disabled />

如何防止此字段中的检查元素选项?

5 个答案:

答案 0 :(得分:4)

不行。

代码检查器旨在调试HTML和Javascript。它们将始终显示网页的实时DOM对象。这意味着它会显示您在页面上看到的所有内容的HTML代码,即使它们是由Javascript生成的。

答案 1 :(得分:1)

如其他答案中所述,无法完全阻止它,一旦它进入浏览器,用户就可以对其进行操作。 与其思考如何防止在输入中使用检查元素或开发工具,不如考虑自己的目标,并希望达到什么目的?

如果要防止更改输入值,请使用服务器端生成的某些哈希值,其中包括来自staffid字段的值,并将其存储在隐藏的输入中。

当用户提交表单时,只需使用staffid值和输入中的哈希值重新生成哈希即可。如果它们不匹配,则用户已手动操作了staffid输入。

示例:

<input type="text" class="empl_date form-control" id="staffid" name="staffid" value="<?php echo $employeeworks[0]['employeeCode'];?>" arsley-maxlength="6" placeholder=" Schedule Date"  disabled />
<input type="hidden" name="hash" value="<?php echo md5($employeeworks[0]['employeeCode'] . 'some salt to avoid user just generating hash with md5 using value only'); ?> /> 

然后提交:

$staffid = filter_input(INPUT_POST, 'staffid');
$hash_input = filter_input(INPUT_POST,'hash');

$hash_check = md5($staffid . 'some salt to avoid user just generating hash with md5 using value only');
if($hash_input !== $hash_check){
//looks like the user manipulated staffid value, throw a validation error
}

答案 2 :(得分:0)

尝试一下

<input type="text" oncontextmenu="return false;" class="empl_date form-control" id="staffid" name="staffid" value="<?php echo $employeeworks[0]['employeeCode'];?>" arsley-maxlength="6" placeholder=" Schedule Date"  disabled />

答案 3 :(得分:0)

您可以通过右键单击来阻止检查。

这种防止右键单击的方法

document.addEventListener('contextmenu', function(e) {
  e.preventDefault();
});

如果用户按F12并单击箭头按钮进行检查,则仍然可以。 您也可以通过此代码阻止F12

 document.onkeydown = function(e) {
      if(event.keyCode == 123) { //F12 keycode is 123
         return false;
      }
    }

答案 4 :(得分:0)

实际上,您不能限制用户检查任何特定元素的检查元素,但可以完全禁用。检查以下代码,该代码将不允许用户打开调试器,甚至无法打开页面源代码。

document.onkeydown = function(e) {
  if(e.keyCode == 123) {
      e.preventDefault();
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'I'.charCodeAt(0)) {
      e.preventDefault();
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'C'.charCodeAt(0)) {
      e.preventDefault();
     return false;
  }
  if(e.ctrlKey && e.shiftKey && e.keyCode == 'J'.charCodeAt(0)) {
      e.preventDefault();
     return false;
  }
  if(e.ctrlKey && e.keyCode == 'U'.charCodeAt(0)) {
      e.preventDefault();
     return false;
  }
}

但是此代码也缺少一些内容。希望对您有帮助。