1

如何防止注射?(jQuery & ajax)

<input type="text" id="name" name="name" /> 
<input type="text" id="email" name="email" /> 

var name = $("#name").val();
var mail = $("#email").val();

输出:

$("#logga").html('Name: <b>' + name + ' </b>Comment:<b> ' + comment + '</b>');
4

3 回答 3

3

无法使用 JavaScript 保护数据。因为客户端代码中的所有代码都可供攻击者使用。

但是您将拥有某种形式的身份验证,以便只有来自您的应用程序的真实请求才能返回数据;

喜欢阅读:如何更好地保护恶意用户的 php、jquery、ajax 请求

于 2013-06-25T20:34:15.853 回答
1

如果您想确保名称/电子邮件内容被正确转义以进行显示,您可以.text先运行它们或创建节点并将它们的值附加到.textContent.

var name = document.createElement('span');
name.textContent = $("#name").val();
$("#logga").html("Name: <b>" + name.textContent);
于 2013-06-25T20:32:14.343 回答
0

你的意思是,用户不能损坏生成的 html 代码?然后你需要转义 html 实体:

function htmlEntities(str) {
    return String(str).replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
}

输出线:

$("#logga").html('Name: <b>' + htmlEntities(name) + ' </b>Comment:<b> ' + htmlEntities(comment) + '</b>');
于 2013-06-25T20:34:00.310 回答