假设我在HTML页面上有一个select标签。 用户可以右键单击选择标签并单击Inspect元素,然后用户可以更改选项标签的值,然后发送数据。 是否有办法避免这个问题?
答案 0 :(得分:2)
这实际上是其中一个原因,为什么你应该总是在后端验证你的数据。 即使您禁用右键单击,用户也可以更改表单数据。
答案 1 :(得分:0)
您可以使用jQuery实现禁用右键单击。
$(document).bind('contextmenu', function (e) {
e.preventDefault();
alert('Right Click is not allowed');
});
但不幸的是,这不会解决你的问题。有许多开发人员工具可用于编写调试或Inspect元素。
很难阻止一切。
答案 2 :(得分:0)
有人可以告诉你如何禁用右键单击,但这不是一个真正的解决方案。如果您担心使用Javascript将操纵变量输入到代码中,那么只需验证和/或清理用户输入,这应该是任何Web应用程序中的必要条件。 PHP现在有一些很好的工具可以轻松清理输入:http://php.net/manual/en/function.filter-var.php。
答案 3 :(得分:0)
不要试图阻止它,因为它在最好的情况下是无用的,在最糟糕的情况下是糟糕的用户体验。
您应该做的是验证服务器端的数据。这可以通过在服务器端保留有效值列表来轻松完成。
简单示例:
<?php
$validValues= [
'val1',
'val2',
'val3',
];
if (!in_array($_POST['yourfield'], $validValues, true)) {
// error
}