xss敏感字符是在插入数据库之前转义还是从数据库读取的时候再转义

目前对XSS在哪个过程转义还不是很清晰。如果在插入数据库之前转义,那么有可能会转义后的字符长度超出了数据库字段定义的长度,导致无法存储或者被截断。但如果在从数据库中读取之后再转义,貌似又有点性能问题,比如访问量大的话,每次读取再转义,或多或少有性能损耗。所以一直不知道应该在哪个过程转义比较合适。觉得存储之前和之后转义都有问题。

阅读 2.2k
2 个回答

读取之后转义完全可行 没什么性能问题
例如 springboot的thymeleaf模版 都做自动对输出字符串转义

如果是前后端分离 类似vue也是自动转义的, 而且是在客户端上进行的 更加没有性能问题

放心用吧..

存储前转义,如果转义后超长意味着数据库字段设计不合理,直接改长度或者用text类型。如果是读取再转义那么意味着每次读取都要转,性能消耗不说,如果有人忘记转了岂不是完蛋,没有这个必要。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题