1.铭记一个基本原则:永远也不要相信用户的输入!
2.输入检测。
是否验证了它的来源?
是否检查了字段的长度?为空或者超长是否会产生问题?
是否限制了字段的可用字符集?数值型、英文字母、可见字符、中文字符,etc
是否含有对程序有特殊含义的字符?
是否限制了字段的取值范围(特别是数值型数据)?
是否限制了字段的格式?比如日期、时间,etc
是否限制了文件/路径名的类型、格式、范围?
3.输出检测。
是否对出错信息中包含的Web物理路径、SQL语句、出错源代码进行了屏蔽和过滤处理?
是否编码了参数中的HTML标签:<>、单双引号?
是否过滤了在标签属性中的不安全内容?
是否过滤或转义了对代码有特殊含义的字符?例如在<script></script>对中的参数应该对<、>、’、”、;、(、)、/、/等字符进行转义