【问题标题】:protect ajax & jquery injection保护ajax和jquery注入
【发布时间】:2013-06-22 19:36:01
【问题描述】:
如何防止注射? (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>');
【问题讨论】:
标签:
jquery
ajax
code-injection
【解决方案2】:
如果您想确保姓名/电子邮件内容被正确转义以便显示,您可以先通过.text 运行它们,或者创建节点并将它们的值附加到.textContent。
var name = document.createElement('span');
name.textContent = $("#name").val();
$("#logga").html("Name: <b>" + name.textContent);
【解决方案3】:
您的意思是,用户不能损坏生成的 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>');