有没有用,我在这里做什么什么问题? 这是我第一次处理这样的事情,我只是想确保我了解所有的风险等不同的方法。
我使用大规模杀伤性武器,以获取用户输入的,而我用文字控制显示它。 因为它是不可编辑输入一次,我将存储HTML而不是降价,
input = Server.HTMLEncode(stringThatComesFromWMDTextArea)
然后运行类似的标签我希望用户能够使用以下。
// Unescape whitelisted tags.
string output = input.Replace("<b>", "<b>").Replace("</b>", "</b>")
.Replace("<i>", "<i>").Replace("</i>", "</i>");
编辑这里是我目前做的:
public static string EncodeAndWhitelist(string html)
{
string[] whiteList = { "b", "i", "strong", "img", "ul", "li" };
string encodedHTML = HttpUtility.HtmlEncode(html);
foreach (string wl in whiteList)
encodedHTML = encodedHTML.Replace("<" + wl + ">", "<" + wl + ">").Replace("</" + wl + ">", "</" + wl + ">");
return encodedHTML;
}
- 请问我在做什么在这里让我免受XSS ?
- 是否有应作出任何其他的考虑?
- 是否有正常的白名单标签的好名单?