我们是否应该htmlencode
用户输入然后将其保存到db
(并将其直接保存为原样)与同事发生冲突
我还发现various answers表示DB
应该保存普通(!)输入。
为什么?因为DB应该知道<
中的用户长度是1,<
中的不是 4
html编码在输出时应仅。
但
话虽如此,我看到Stackoverflow没有遵循这条规则。
当我在SO处保存问题时,其中包含普通<
,它确实显示(显然)预览窗格中的<
。但是当我提交问题时:它以json 提交内容为html编码!
Json.stringify没有做html编码
所以,如果我输入输入:
并提交:
我看到(通过fiddler)它实际上发送了html编码值:
问题:
如你所见 - 我有点困惑。通用逻辑说db应该保存用户类型1:1。
应在输出
进行同步答案 0 :(得分:-1)
您必须对发送到服务器的输入进行编码,否则服务器上的反交叉站点脚本保护将阻止整个请求。但是,在保存到DB之前解码此输入。
另一方面,您在POST中看到的内容不一定是保存到数据库的内容。