我正在编写一个实用程序,它接收一个 .resx 文件并创建一个 javascript 对象,其中包含 .resx 文件中所有名称/值对的属性。这一切都很好,直到 .resx 中的一个值是
该经销商接受电子订单。
/r/n单击以从该经销商处订购 {0}。
我将名称/值对添加到 js 对象中,如下所示:
streamWriter.Write(string.Format("\n{0} : \"{1}\"", kvp.Key, kvp.Value));
当 kvp.Value = "该经销商接受电子订单。/r/n点击从该经销商订购 {0}。"
这会导致 StreamWriter.Write() 实际上在“订单”之间放置一个换行符。和“点击”,这自然会搞砸我的 javascript 输出。
我用@ 尝试了不同的东西,但没有使用 string.Format,但我没有运气。有什么建议么?
编辑:此应用程序在构建期间运行以获取稍后部署的一些 javascript 文件,因此除了应用程序开发人员之外,任何人都无法访问/运行它。因此,虽然我显然需要一种方法来在这里转义字符,但 XSS 本身并不是一个真正的问题。