Php 如何防止用户检查页面和编辑表单元素的值?
我在注册页面上有一个简单的国家下拉列表 这是一个例子:Php 如何防止用户检查页面和编辑表单元素的值?,php,html,drop-down-menu,Php,Html,Drop Down Menu,我在注册页面上有一个简单的国家下拉列表 这是一个例子: 摩洛哥 阿尔及利亚 埃及 问题是,任何用户都可以通过浏览器检查器编辑此下拉列表,然后提交带有一些伪值的表单。例如,我的列表中没有德国,但任何用户都可以在inspector元素的帮助下手动添加该国家(Ctrl+Shift+C) 那么,我怎样才能防止这种变化呢?我不想在PHP中使用条件,因为我有100多个国家,因此无法验证所有这些国家。您不能阻止用户检查网站并编辑值。来自用户/客户端的任何东西都是不可信的,因为它们都可以以某种方式被操纵 唯
摩洛哥
阿尔及利亚
埃及
问题是,任何用户都可以通过浏览器检查器编辑此下拉列表,然后提交带有一些伪值的表单。例如,我的列表中没有德国
,但任何用户都可以在inspector元素的帮助下手动添加该国家(Ctrl+Shift+C
)
那么,我怎样才能防止这种变化呢?我不想在PHP中使用条件,因为我有100多个国家,因此无法验证所有这些国家。您不能阻止用户检查网站并编辑值。来自用户/客户端的任何东西都是不可信的,因为它们都可以以某种方式被操纵 唯一正确的方法是在插入数据之前在服务器端验证它。提交到数据库的任何数据都应该始终在服务器端进行验证(此外,客户端也可以,但不能代替-因为客户端验证可以像HTML一样由用户在本地更改)
$error=[];
if(!in_数组($_POST['reg\u contry'],['mocrog',alegia',埃及]]{
$error[]=“给出的国家/地区值不正确”;
}
if(空($error)){
//如果没有错误,请运行查询并插入数据
}
您不能阻止用户检查网站和编辑值。来自用户/客户端的任何内容都不可信,因为它们都可以通过某种方式进行操作
唯一正确的方法是在插入数据之前在服务器端对其进行验证。提交到数据库的任何数据都应始终在服务器端进行验证(此外,客户端也可以,但不能代替-因为客户端验证可以像HTML一样由用户在本地更改)
$error=[];
if(!in_数组($_POST['reg\u contry'],['mocrog',alegia',埃及]]{
$error[]=“给出的国家/地区值不正确”;
}
if(空($error)){
//如果没有错误,请运行查询并插入数据
}
您无法阻止这种情况发生。您所能做的最好的事情就是验证提交的数据是否有效。使用阵列中的国家/地区,您可以轻松验证提交的数据,这应该不会太昂贵。您需要实现的是服务器端验证。您可以而且永远不会相信来自浏览器的内容,因为大部分内容都可以操纵您无法阻止这种情况发生。您所能做的最好的事情是验证提交的数据是否有效。使用阵列中的国家/地区,您可以轻松验证提交的数据,这应该不会太昂贵。您需要实现的是服务器端验证。您可以而且永远不会像大多数情况那样信任来自浏览器的数据被操纵