我知道已经有很多关于这个主题的帖子,但现在我对如何制作安全的Web应用程序有很大的困惑。
好的,所以我正在制作一个注册页面。有一些输入字段,如姓名,出生日期,城市等。 我已经对日期,名称和其他字段进行了验证。
但是对于国家/地区,我有一个从数据库生成的选择标签中的国家/地区的下拉列表。 任何人都可以使用检查元素更改其值,所以我怎么知道该值是由检查元素更改的。
前任。如果用户选择<option value="IN">India</option>
,我在php中得到IN
,但如果用户将其更改为<option value="hacker">India</option>
,我将获得hacker
的值。
那么我如何检查值是否已更改以及制作安全 Web 应用程序的好步骤是什么。
在服务器端,在接收表单提交的页面上,您可以检查收到的响应是否在您的国家/地区列表中,如果不是,则拒绝。
if (!in_array($_POST['country'], $countries)) echo "Invalid country";
不过,我会有一个更广泛的问题,为什么这是必要的。如果用户可以从列表中自由选择他们的国家/地区,为什么其中一个会更改该值?如果您担心 SQL 注入攻击,则应使用预准备语句。