你无法控制进入应用程序的内容,甚至无法控制从数据库进入的内容,因为这些数据之前可能已经注入了。日期,如1900年 不是一个有效的日期,应确保在预期的范围内。因此,任何来自你控制的领域之外的东西,比如来自用户、数据库、外部应用程序、后端 API 等等,所以要假设一切都是错误的。
一、数据类型验证
1、传统验证
验证不通过抛出异常,如Integer.parseInt
2、Apache 工具类验证
org.apache.commons.validator.routines
包下有各种验证方法,不会抛出异常,如果数据无效返回Null。在不需要每次验证处理逻辑中都抛出异常时,这样可以带来一些性能改进。如UrlValidator、DateValidator、IntegerValidator 等等。
二、阈值验证
查数量是否超过某个阈值。