我从数据库接收数据并使用 jQuery ajax 将结果添加到 HTML 元素,如下所示:
$.ajax({
url: "getDatabaseData.php",
type: "post",
dataType: "json",
success: function(response){
$("#message-div").html(response[0].user_input_message);
}
});
这是从数据库获取和返回数据的getDatabaseData.php:
$messages = $CFG_DB->select("SELECT user_input_message FROM messages");
echo json_encode($messages);
假设 user_input_message 包含以下文本:
<script>XSS Attack code goes here</script>
我的问题是:
- 这样做会不会有XSS问题?
- 如果出现问题,我该如何预防?
没有 ajax,当使用 PHP 打印数据时,我只是使用 htmlentities 来防止 XSS,但我没有看到任何类似的 javascript。
最佳答案
when printing the data using PHP I just use htmlentities to prevent XSS
等同于使用 text()
而不是 html()
。
关于javascript - 在 ajax 接收的数据上防止 javascript 中的 XSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49589991/