2010-07-16 56 views
1

我正在使用jquery数据表和MS XSS库。关于Html编码的问题

我这样做

AntiXss.HtmlEncode(MyDate.ToString("MM/dd/yyyy h:mm tt")))); 

这使得这个

07/22/2010 4:04 PM 

所以其所有的编码。现在无论出于何种原因,这可能会破坏数据表。它无法弄清楚如何排序了。

那么为什么它编码的斜杠和点?他们有什么不好?当它显示在浏览器看起来像07 2010年4月:下午4点

所以我猜测数据表只需要在编码版本和亘古不变的知道该怎么做。

我应该怎么做。我想编码的数据,但如果它搞砸了我的排序这不太好。我应该使用安全的html片段吗?

回答

0

说实话,我并不知道涉及斜杠和点的XSS攻击。然而,很多字符都具有等效性,并且正在进行此转换,但我不认为这是由于安全问题。

在安全方面讨厌的字符是这些4:'"<>。另一件事,方法AntiXss.HtmlEncode()应该用于用户输入,以防止XSS。在不受攻击者影响的日期运行此功能没有多大意义...(除非您对时间旅行者进行防御)

+0

那么日期是由用户设置的。我想如果试图进入数据库就会死掉(因为它不会是日期时间)。在一个侧面说明是更好的编码输入到数据库或让所有的一切,并编码输出给用户。或者两个都做? – chobo2 2010-07-16 21:36:21

+0

如何将数字存储为整数?他们可以用int的方式纠正它们,他们可以用十六进制编写它吗? – chobo2 2010-07-16 21:37:03

+0

现在我想起来了,你的权利在日期上可能没有意义。我猜我的想法很好,用户可以改变它到任何东西(因为它变成了一个字符串),但我想这是很难做一个字符串时,日期是存储在数据库中的日期时间,这就是我得到它。所以我猜测这与int的位,位等是一样的吗? – chobo2 2010-07-16 21:41:02

0

而不是编码日期只是做一个理智检查日期字符串的格式。只要它形成的日期不存在脚本注入或其他恶作剧的危险。