【发布时间】:2014-03-10 10:00:27
【问题描述】:
我们与同事就是否应该 htmlencode 用户输入然后将其保存到 db 发生冲突(而不是直接保存)
我还发现various answers 说DB 应该保存普通(!)输入。
为什么?因为 DB 应该知道< 中的用户长度为 1,< 中的 not 为 4
html编码应该只在输出时进行。
但是:
话虽如此,我发现 Stackoverflow 没有遵循此规则。
当我在 SO 保存一个问题时,其中包含纯 < 它确实在预览窗格中显示(显然)<。但是当我提交问题时:它将内容提交为 json with html encode!
Json.stringify 没有进行 html 编码
所以如果我输入输入:
并提交:
我看到(通过提琴手)它实际上发送了 html 编码值:
问题:
如你所见 - 我有点困惑。通用逻辑说 db 应该以 1:1 的比例保存任何用户类型。
应该在输出端进行消毒
【问题讨论】:
-
问题是关于最佳实践,而不是基于意见......
-
没有最佳实践,只有好的实践!
-
显然反对者不知道我在说什么
标签: javascript html encoding fiddler html-encode