javascript - 在 ajax 接收的数据上防止 javascript 中的 XSS

标签 javascript ajax xss

我从数据库接收数据并使用 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>

我的问题是:

  1. 这样做会不会有XSS问题?
  2. 如果出现问题,我该如何预防?

没有 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/

相关文章:

javascript - Jquery append Stripe 支付按钮返回 [object HTMLScriptElement]

javascript - 如何使用 browserify 模块为浏览器适配 xml2js Node 模块?

javascript - 为什么 ((a(-b)?)(?!Z)) 与 "a-bZ"中的 a 匹配?

javascript - ajax修改html标签成功,但无法使用

查询字符串篡改的 XSS 攻击会产生异常

javascript - 禁用 div 中的所有 javascript

javascript - 更改用于分隔具有相同名称标识符的表单输入字段的字符?

javascript - 当滚动条距离窗口底部 200px 时加载 AJAX 页面,窗口大小可能会有所不同

javascript - HTML 格式字符串中的 jQuery

php - 我需要清理用户输入的 Laravel 吗?