C# 处理由c生成的html中的嵌套引号#
我正在使用第三方库显示工具提示,如下所示:C# 处理由c生成的html中的嵌套引号#,c#,html,formatting,quotes,C#,Html,Formatting,Quotes,我正在使用第三方库显示工具提示,如下所示: string tooltip = "test"; output.Write("onmouseover='Tip(\"" + test + "\");'"); // work fine :) 我在以下情况下遇到问题,我需要引号来进行格式设置: string tooltip = "<span style='color:red;'>test</span>"; output.Write("onmouseover='Tip(\"" +
string tooltip = "test";
output.Write("onmouseover='Tip(\"" + test + "\");'"); // work fine :)
我在以下情况下遇到问题,我需要引号来进行格式设置:
string tooltip = "<span style='color:red;'>test</span>";
output.Write("onmouseover='Tip(\"" + test + "\");'"); // no working :(
string tooltip=“test”;
output.Write(“onmouseover='Tip(\“”+test+\“”;')”)//禁止工作:(
如何在工具提示中转义html所需的引号,使其不会中断函数调用?将
“
的任何实例替换为”
,如下所示:
test.Replace( "\"", """ )
这是微软的完美应用 使用它,您可以调用JavaScriptEncode函数,该函数将构建如下字符串:
Microsoft.Security.Application.AntiXss.JavaScriptEncode("ab'c\"d")
// 'ab\x27c\x22d'
string tooltip = "<span style='color:red;'>test</span>";
output.Write("onmouseover=\"Tip(" + AntiXss.JavaScriptEncode(test) + ");\""); // working :)
请注意,它包括引号
你可以把它用HTML编码,然后直接把它放到括号里
大概是这样的:
Microsoft.Security.Application.AntiXss.JavaScriptEncode("ab'c\"d")
// 'ab\x27c\x22d'
string tooltip = "<span style='color:red;'>test</span>";
output.Write("onmouseover=\"Tip(" + AntiXss.JavaScriptEncode(test) + ");\""); // working :)
string tooltip=“test”;
output.Write(“onmouseover=\”提示(“+AntiXss.JavaScriptEncode(test)+”);\”;//工作:)
这仍然会导致XSS攻击。我认为您错误地认为字符串测试来自最终用户,这不是我在上面的示例中看到的。对我来说,很明显,他控制着工具提示。