执行复制到pre标记中的Javascript代码示例
我正在尝试向某个执行复制到pre标记中的Javascript代码示例,javascript,jquery,Javascript,Jquery,我正在尝试向某个添加一段javascript代码。 我将代码包含在pre和code标记中,但是当我实际运行它时,代码就会被执行。显然,那根本不是我想要的 var code = '<pre><code><script type="text/javascript" src="http://source.com/test.js"><\/script>\n'; code = code + '<script type="text/jav
添加一段javascript代码。
我将代码包含在pre和code标记中,但是当我实际运行它时,代码就会被执行。显然,那根本不是我想要的
var code = '<pre><code><script type="text/javascript" src="http://source.com/test.js"><\/script>\n';
code = code + '<script type="text/javascript">\n';
code = code + '\tadimp.id = ' + 1 + ';\n';
code = code + '\tadimp.type = ' + 1 + ';\n';
code = code + '\tadimp.generate();\n';
code = code + '<\/script></code></pre>';
$("#code").html(code);
var code='\n';
var code = '<pre><code><script type="text/javascript" src="http://source.com/test.js"><\/script>\n';
code = code + '<script type="text/javascript">\n';
code = code + '\tadimp.id = ' + 1 + ';\n';
code = code + '\tadimp.type = ' + 1 + ';\n';
code = code + '\tadimp.generate();\n';
code = code + '<\/script></code></pre>';
$("#code").html(code);
代码=代码+'\n';
code=code+'\tadimp.id='+1+'\n′;
code=code+'\tadimp.type='+1+'\n′;
code=code+'\tadimp.generate()\n′;
代码=代码+'
';
$(“#代码”).html(代码);
在这种情况下,您应该为
和
。试试这个
var code = [
'<script type="text/javascript" src="http://source.com/test.js"><\/script>',
'<script type="text/javascript">',
'\tadimp.id = ' + 1 + ';',
'\tadimp.type = ' + 1 + ';',
'\tadimp.generate();',
'<\/script>'
].join('\n');
$('#code').text(code);
// --------^^^^
';
$(“#代码”).html(代码);
由于HTML标记在PRE中是允许的,所以您不能通过在文本文件周围拍打
和
将文本文件“插入”到HTML文档中。必须首先将&、<和>字符转换为实体
从惊喜!您刚刚制造了自己的XSS漏洞。始终使用HTML将任何数据编码为HTML。(“数据”是您希望显示在屏幕上的任何内容。) 谢天谢地,在HTMLDOM中,这是完全自动的。只需使用text属性,而不是HTML属性
var代码=[
'',
'',
'\tadimp.id='+1+';',
'\tadimp.type='+1+';',
“\tadimp.generate();”,
''
].join('\n');
$('代码')。文本(代码);
// --------^^^^
实时演示:预标记格式化文本不一定会将其中的文本作为html执行。或者在本例中是JavaScript。更好的方法是用html实体
和
替换var code='<script type=“text/javascript”src=”http://source.com/test.js“></script>\n'我建议您只需简单地替换中的
<,您还需要转换开头的
标记,所以它不会假定其余部分是脚本的一部分。您的手指比我的手指快。”@skerit-希望它能帮到你。不知怎的,我认为标签中的任何东西都被视为文本。。。这帮了大忙!:)
var code = '<pre><code><script type="text/javascript" src="http://source.com/test.js"><\/script>\n';
code = code + '<script type="text/javascript">\n';
code = code + '\tadimp.id = ' + 1 + ';\n';
code = code + '\tadimp.type = ' + 1 + ';\n';
code = code + '\tadimp.generate();\n';
code = code + '<\/script></code></pre>';
$("#code").html(code);