2

这是一个奇怪的要求!

我想<script>alert('test');</script>输入一个输入类型的文本,但它不应该执行alert().

我只需要设置文本<script>alert('test');</script>
正在使用nwt 框架......而且这在 JS 中是否可行?

谢谢,
瓦西姆博士

4

5 回答 5

3

. 我通常这样做element.value="<script>alert('test');</script>"

如果听起来您正在生成一个内联<script>元素,在这种情况下,</script>它将结束 HTML 元素并导致脚本在字符串中间终止。

转义/以使其不被 HTML 解析器视为结束标记:

element.value = "<script>alert('test');<\/script>"
于 2013-06-12T09:52:26.350 回答
-1

你想在输入元素上修复 XSS 吗?您可以在输出到输入字段之前对字符串进行编码

PHP:

$str = htmlentities($str);

C#:

str = WebUtility.HtmlEncode(str);

之后输出值直接到输入字段:

<input type="text" value="<?php echo $str" />
于 2013-06-12T10:16:30.767 回答
-1

好的回答这个。我只是将我<的 and转换>&lt;and &gt;。之前发生的事情是我习惯于设置文本<script>alert('1')</script>,但在输入文本 browserconverts&lt;&gt;as<>. 因此,因此将它们再次转换为&lt;&gt;因为浏览器将理解为仅标记并转换它们,而不是执行里面的脚本<input type="text" />

于 2013-06-17T15:35:49.047 回答
-2

我想提醒('test'); 在输入类型文本中,但不应执行警报(警报提示)。

<input type="text" value="<script>alert('test');</script>" />

产生:

在此处输入图像描述

您可以通过 JavaScript 以编程方式执行此操作。首先获取输入元素的引用,然后设置value属性。

var inputElement = document.querySelector("input");
inputElement.value = "<script>alert('test');<\/script>";
于 2013-06-12T09:51:49.173 回答
-3

jQuery版本:

$('yourInputSelectorHere').val("<script>alert('test');<\/script>")
于 2013-06-12T09:58:22.953 回答