保护ajax& jquery注射

时间:2013-06-25 20:29:55

标签: jquery ajax code-injection

如何防止注射? (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>');

3 个答案:

答案 0 :(得分:3)

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

但是你会有某种形式的身份验证,这样只有来自你的应用程序的真实请求才能返回数据;

更喜欢阅读:How can I better protect my php, jquery, ajax requests from malicious users

答案 1 :(得分:1)

如果您想确保正确转义名称/电子邮件内容以进行展示,您可以先通过.text运行它们,或者创建节点并使用.textContent附加其值。

var name = document.createElement('span');
name.textContent = $("#name").val();
$("#logga").html("Name: <b>" + name.textContent);

答案 2 :(得分: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>');