【问题标题】:Shall I trust client side data blindly in web application?我应该在 Web 应用程序中盲目信任客户端数据吗?
【发布时间】:2014-08-13 18:44:27
【问题描述】:

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

现在我的问题是我应该在服务器端验证国家名称还是我应该相信country 字段将具有来自select 的有效值?

【问题讨论】:

  • 永远不要相信客户,期间。

标签: jsp spring-mvc web-applications


【解决方案1】:
  1. 不,您不应该相信客户的输入。

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

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

【讨论】:

    猜你喜欢
    • 2022-01-06
    • 2016-04-25
    • 2014-12-13
    • 1970-01-01
    • 1970-01-01
    • 2019-11-28
    • 1970-01-01
    • 2021-06-26
    • 1970-01-01
    相关资源
    最近更新 更多