我正在从数据库输出值(它不是公开的输入,但用户在公司可以进行输入 - 这意味着,我不担心XSS)。
我正在尝试输出这样的标签:
<a href="" onclick="DoEdit('DESCRIPTION');">Click Me</a>
DESCRIPTION其实是来自数据库的一个值,类似于这样:
Prelim Assess "Mini" Report
我尝试用 \ 替换 ",但无论我尝试什么,Firefox都会在单词 Assess 后的空格处截断我的 JavaScript 调用,这导致了各种问题。
我一定是错过了显而易见的答案,但是我无论如何都想不出来。
有人能指出我的愚蠢吗?
以下是整个 HTML 页面(最终将成为 ASP.NET 页面,但为了解决此问题,我除了问题代码之外删除了其他所有内容)。
<html>
<body>
<a href="#" onclick="DoEdit('Preliminary Assessment \"Mini\"'); return false;">edit</a>
</body>
</html>
onclick
事件的绑定方式改为不显眼的,并将所有数据库信息移入数据岛中是一个好主意。这样可以使代码更加清晰,当字符串转义出错时,还能获得某种语法错误提示。 - Justin Johnson