通过 Ajax 输入 “<script>alert(”hi“);</script>”时,使用 jQuery 防止布局中断

Preventing layout break using jQuery when entering "<script>alert("hi");</script>" via Ajax

本文关键字:script 使用 jQuery 中断 布局 Ajax 输入 alert hi 通过      更新时间:2023-09-26

我有一个带有加号图标的输入字段。单击加号图标时,输入的值将添加到输入字段上方。

实际上,我正在使用模板在输入字段上方添加内容。单击加号图标后,我用值替换相应的模式,并使用jQuery替换函数将内容放在输入字段上方。

如果任何黑客输入的值,例如"<script>alert("hi");</script>"布局就会中断。

如何通过jQuery阻止这些类型的攻击?我知道可以进行服务器端验证。但是有什么方法可以通过jQuery/客户端验证来阻止这些攻击吗?

很简单。不要使用jQuery的.html(),使用.text()

转义将自动发生,除了不使用错误的 API 函数外,您不需要做任何特殊的事情。

<div id="textDisplay"></div>
<input type="text" id="enteredText"> <button id="transferText">Click!</button>

$(function() {
    $("#transferText").click(function () {
        var userInput = $("#enteredText").val();
        $("#textDisplay").text(userInput);
    });
});