我应该在Web应用程序中盲目信任客户端数据吗?

时间:2014-06-23 16:27:00

标签: jsp spring-mvc web-applications

我的Web应用程序中的客户端有JSP / HTML页面。假设我有一个<select>控件,其中包含所有国家/地区名称。单击提交按钮时,它将转到服务器端弹簧控制器,并将处理它们。

现在我的问题是我应该在服务器端验证国家/地区名称,还是我应该相信country字段具有有效值,因为它来自select

1 个答案:

答案 0 :(得分:2)

  1. 不,您不应该信任客户输入。

  2. 您应该使用国家/地区ID(使用ISO 3166-1 alpha-2 code)而不是名称,以防您日后将应用程序国际化。

  3. 如果要将客户端输入存储在数据库中,请确保他们输入到包含所有国家/地区代码的表的国家/地区代码上有外键。这样他们的错误输入会引发异常,您可以向他们显示错误消息。确保将SQL语句参数化为数据库。