相关疑难解决方法(0)

脚本标记中何时需要CDATA部分?

在脚本标签中是否有必要使用CDATA标签,如果是这样的话?

换句话说,何时何地:

<script type="text/javascript">
//<![CDATA[
...code...
//]]>
</script>
Run Code Online (Sandbox Code Playgroud)

比这更好:

<script type="text/javascript">
...code...
</script>
Run Code Online (Sandbox Code Playgroud)

html javascript xhtml cdata

887
推荐指数
13
解决办法
34万
查看次数

是否有必要为javascript字符串"转义"字符"<"和">"?

有时,服务器端将生成要嵌入内联JavaScript代码的字符串.例如,如果"UserName"应由ASP.NET生成.然后看起来像.

<script>
   var username = "<%UserName%>";
</script>
Run Code Online (Sandbox Code Playgroud)

这不安全,因为用户可以拥有他/她的名字

</script><script>alert('bug')</script></script>

这是XSS漏洞.

所以,基本上,代码应该是:

<script>
   var username = "<% JavascriptEncode(UserName)%>";
</script>
Run Code Online (Sandbox Code Playgroud)

什么JavascriptEncode确实是增加系统字符"\"前"/"和"""和""."所以,输出HTML是什么样子.VAR用户名="</ SCRIPT>警报(\ '错误\')</ SCRIPT > </ SCRIPT>";

浏览器不会将" </ script> " 解释为脚本块的结尾.所以,XSS避免了.

但是,那里仍然有"<"和">".建议也要逃避这两个字符.首先,我认为将"<"改为"<"并不是一个好主意.和">"到">" 这里.并且,我不确定将"<"更改为"\ <"并且">"更改为"\>"可以被所有浏览器识别.似乎没有必要对"<"和">"进行进一步编码.

对此有什么建议吗?

谢谢.

html javascript xss encode

17
推荐指数
2
解决办法
1万
查看次数

标签 统计

html ×2

javascript ×2

cdata ×1

encode ×1

xhtml ×1

xss ×1