我觉得优先采用在提交的时候进行 html 编码。“数据库字段长度必须设置为之前的5倍”,这个说法不准确,只有html标签且只有其中少部分字符会被编码。“检索查询等可能还会造成问题”,一般不会检索 html 标签。
对呀,我是防止意外情况,其实很多字段根本不允许输入特殊字符,也没有必要做Xss处理。但是有些Xss攻击不一定非得是<script>标签这种,如果一个字段出现在属性上(src或者href),或者本身就出现在了script标签中,也是要做转义的。假设数据库存了个url,url肯定是在src上,那就要转移":","(",")"之类的字符