我的头脑与这个爆炸,我正在寻找一个简洁的一步一步来转义用户提交的数据,然后再输出到其他用户的浏览器。
流程: 1) 用户 1 提交带有文本字段的 ajax 表单 (jquery),以 JSON 格式发送。2) PHP 使用 mysqli_real_escape_string() 对字符串进行转义并将其放入数据库中。3) 用户 2 加载一个页面,该页面通过 jquery ajax 请求请求数据,接收为 JSON。该字符串在表单的选择框中显示为一个选项。
我想确保用户 1 不能提交恶意 javascript 或 html - 换句话说,我希望所有字符都被正确转义。我想要有关实现此目标的步骤的指导,下面的代码需要更改什么?
提交表格时:(没有转义)
$.ajax({
url: '/ajax/insert.php', dataType: 'json',
data: {str: $("input").val()}, success: function(){}
)};
PHP插入数据库:(转义)
mysqli_query(
"insert into tbl (str) values ('"
.mysqli_real_escape_string($link, $_REQUEST['str'])
."')");
JQuery获取字符串,放入下拉列表(简化)(在这里转义?):
$.ajax({
url: '/ajax/get.php', dataType: 'json',
data: {},
success: function(json){
$("select").html("<option>" + json.str + "</option>");
}
});
用于从数据库中检索的 PHP(在这里转义?):
$res = mysqli_query($link, "select str from tbl where X");
echo json_encode(mysqli_fetch_assoc($res));
谢谢