我的Web应用程序中的客户端有JSP / HTML页面。假设我有一个<select>
控件,其中包含所有国家/地区名称。单击提交按钮时,它将转到服务器端弹簧控制器,并将处理它们。
现在我的问题是我应该在服务器端验证国家/地区名称,还是我应该相信country
字段具有有效值,因为它来自select
?
答案 0 :(得分:2)
不,您不应该信任客户输入。
您应该使用国家/地区ID(使用ISO 3166-1 alpha-2 code)而不是名称,以防您日后将应用程序国际化。
如果要将客户端输入存储在数据库中,请确保他们输入到包含所有国家/地区代码的表的国家/地区代码上有外键。这样他们的错误输入会引发异常,您可以向他们显示错误消息。确保将SQL语句参数化为数据库。