目前对XSS在哪个过程转义还不是很清晰。如果在插入数据库之前转义,那么有可能会转义后的字符长度超出了数据库字段定义的长度,导致无法存储或者被截断。但如果在从数据库中读取之后再转义,貌似又有点性能问题,比如访问量大的话,每次读取再转义,或多或少有性能损耗。所以一直不知道应该在哪个过程转义比较合适。觉得存储之前和之后转义都有问题。
目前对XSS在哪个过程转义还不是很清晰。如果在插入数据库之前转义,那么有可能会转义后的字符长度超出了数据库字段定义的长度,导致无法存储或者被截断。但如果在从数据库中读取之后再转义,貌似又有点性能问题,比如访问量大的话,每次读取再转义,或多或少有性能损耗。所以一直不知道应该在哪个过程转义比较合适。觉得存储之前和之后转义都有问题。
存储前转义,如果转义后超长意味着数据库字段设计不合理,直接改长度或者用text
类型。如果是读取再转义那么意味着每次读取都要转,性能消耗不说,如果有人忘记转了岂不是完蛋,没有这个必要。
4 回答1.4k 阅读✓ 已解决
8 回答1.3k 阅读
2 回答1.5k 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
2 回答867 阅读✓ 已解决
2 回答1.7k 阅读
读取之后转义完全可行 没什么性能问题
例如 springboot的
thymeleaf
模版 都做自动对输出字符串转义如果是前后端分离 类似
vue
也是自动转义的, 而且是在客户端上进行的 更加没有性能问题放心用吧..