我正在編寫一個實用程序,它接收.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