【强制】输入验证
输入是相对的
相对你编写的代码,入口层接收到的内容(来源可能是数据库、文件系统、客户端传递过来的所有参数uri,cookie,header等等)
校验方法
基本原则是白名单
比如只允许接收用户传递int类型,取值范围在1~10000
比如只接收中国大陆手机号
但很多时候业务上的白名单很难实现,采用的是黑名单
常见的危险字符, <、>、’、”、&、反引号、
特殊的危险字符 %00、%0a、%0d、\r、\n、..、
辅助校验方法
长度校验
字符集统一
取值类型
取值范围
【强制】输出编码
HTML实体编码
目前大部分的输出编码主要指页面输出的编码,防止出现XSS问题