我正在从数据库中输出值(它实际上并不开放给公众进入,但是它对公司用户开放,这意味着我不担心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>
您需要转义要写入的字符串,DoEdit以擦掉双引号字符。它们导致onclickHTML属性过早关闭。
DoEdit
onclick
\在HTML上下文中仅使用JavaScript转义字符,是不够的。您需要将双引号替换为正确的XML实体表示形式"。
\
"