如何防止注射? (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>');
答案 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, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
}
输出行:
$("#logga").html('Name: <b>' + htmlEntities(name) + ' </b>Comment:<b> ' + htmlEntities(comment) + '</b>');