我正在编写一个实用程序,它接收.resx文件并创建一个JavaScript对象,其中包含.resx文件中所有名称/值对的属性。这一切都很好,直到.resx中的一个值为如何使用StreamWriter逐字写入转义字符(无需转义)?
此经销商接受电子订单。
/r/n点击订购该经销商的{0}。
我添加的名称/值对的JS对象是这样的:
streamWriter.Write(string.Format("\n{0} : \"{1}\"", kvp.Key, kvp.Value));
当kvp.Value =“该经销商接受电子orders./r/nClick从这个{0}订购经销商“。
这会导致StreamWriter.Write()实际在“订单”之间放置换行符。和'点击',这自然搞砸了我的JavaScript输出。
我已经尝试了不同的事情@和没有使用string.Format,但我没有运气。有什么建议么?
编辑:此应用程序在构建期间运行以获得稍后部署的一些javascript文件,因此除了应用程序开发人员之外,任何人都无法访问/运行此应用程序。所以,虽然我明显需要一种逃避角色的方式,但XSS本身并不是一个真正值得关注的问题。
我按照现在的方式做了一个粗略的传递。我使用XmlDocument.LoadXml()读取.resx文件,然后使用一个ForEach(Node.SelectNodes(xpath string)),Node.ChildNodes [1] .InnerText。 看来,当我触摸Node.ChildNodes [1] .InnerText时,特殊字符已经被扩展。 假设从XmlDocument实现切换不值得花费精力,对此有何看法? – Joel 2010-04-26 20:36:15