jqgrid autoencode=true encode postdata

jqgrid autoencode=true encode postdata,jqgrid,html-escape-characters,Jqgrid,Html Escape Characters,我正试图修复我的web应用程序中的XSS漏洞,我被jqGrid困住了 我为我的所有网格激活了“autoencode”,文档上说:“当设置为true时,对传入(来自服务器)和发布的数据进行编码(来自编辑模块)。” 我的问题是我不明白为什么发布的数据会被编码。这样,我就可以在数据库中获得html转义文本。所以这个数据库不再被其他应用程序读取(或者它必须解码所有文本),而且数据库搜索也不再工作 所以,是否可以只对从数据库检索到的数据进行编码,并按原样发布数据? 目前,我禁用了自动编码,并在所有列上添加

我正试图修复我的web应用程序中的XSS漏洞,我被jqGrid困住了

我为我的所有网格激活了“autoencode”,文档上说:“当设置为true时,对传入(来自服务器)和发布的数据进行编码(来自编辑模块)。”

我的问题是我不明白为什么发布的数据会被编码。这样,我就可以在数据库中获得html转义文本。所以这个数据库不再被其他应用程序读取(或者它必须解码所有文本),而且数据库搜索也不再工作

所以,是否可以只对从数据库检索到的数据进行编码,并按原样发布数据?
目前,我禁用了自动编码,并在所有列上添加了格式化程序,以转义所有文本。这是唯一的方法吗?

您可以使用
serializedEditData
(在使用情况下)、
serializeRowData
(在使用情况下)或
serializeCellData
(在使用情况下)更改编辑期间将发送到服务器的数据。要解码数据,可以使用例如
$.jgrid.htmlDecode
。您可以枚举已发布数据的所有属性,并解码相应属性的值。或者,您可以在服务器端使用已发布数据的解码。您在服务器上使用的任何技术都提供了可用于解码的简单方法。例如,在ASP.NET中,可以使用
HtmlDecode
/
HtmlEncode
方法。

谢谢Oleg。很好用。但我想这可能是jqgrid中的一个不错的功能。@william:不客气!您可以向发送任何功能请求。我看到的最大问题是与现有代码的兼容性。如果在下一版本中更改已发布数据的编码,则会破坏所有使用网格编辑和使用
autoencode:true
的用户的代码。用户必须修复他的代码。所以我不确定trirand是否会对jqGrid的代码进行更改。