여기에서 내가 뭘하고있는 데 문제가 있습니까? 이와 같은 것을 처리하는 것은 이번이 처음이며, 모든 위험을 다른 방법으로 이해하고 있는지 확인하고 싶습니다.C#에서 WMD 제어를 사용하여 XSS를 허용하지 않음
사용자 입력을 위해 WMD를 사용하고 있으며 리터럴 컨트롤로 표시하고 있습니다. 가 편집 할 때문에 한 번 나는 HTML이 아닌 마크 다운,
input = Server.HTMLEncode(stringThatComesFromWMDTextArea)
를 저장하고 다음 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으로부터 보호 유지 여기서 뭐하는거야 것 : 여기
// Unescape whitelisted tags. string output = input.Replace("<b>", "<b>").Replace("</b>", "</b>") .Replace("<i>", "<i>").Replace("</i>", "</i>");
편집 내가 현재 무엇을하고 무엇인가?
- 해야 할 다른 고려 사항이 있습니까?
- 화이트리스트에 정상적인 태그의 좋은 목록이 있습니까?
"<img>"을 "src"속성에 사용할 수 없으므로 해당 코드는 "IMG"태그에서 작동하지 않습니다. – David