我应该使用 JSON 编码,JavaScript 编码还是两者都使用?

Should I use JSON econding, JavaScript encoding or both?

我开始从事网站的安全工作,我的任务是防止 XSS 攻击。我看过 OWASP 规则来处理它。但是,我不确定在我的具体情况下应该使用这些规则中的哪一个。 我有以下 .jsp 文件:

<%
    // Get Requests
    InputData data = new InputData(request);
    int idBcomp = data.getInt("bcomp");

    Bcomp bcomp = new Bcomp();
    BcompDao bcompDao = new BcompDaoImpl();

    bcomp.setId(idBcomp);

    JSONObject json = new JSONObject();

    try {

        for (Bcomp s : bcompDao.find(bcomp)) {
            json.accumulate("id", s.getId());
            json.accumulate("nome", s.getNome());
            json.accumulate("nox", s.getNox());
        }

    } catch (SQLException e) {
        json.accumulate("erro", e.getMessage());
    } catch (Exception e) {
        json.accumulate("erro", e.getMessage());
    }

    out.write(json.toString());
%>

我还有 .js 文件接收和操作上面文件创建的 JSON。在这个文件中,我有以下代码:

function import(idBcomp) {
    $.ajax({
        url: 'ajax/bcomp.jsp',
        data: {bcomp: idBcomp}
    }).done(function (r) {
        var obj = $.parseJSON(r);

        $("#nome").val(obj.nome);
        $("#nox").val(obj.nox);
        $("#id_bcomp").val(obj.id);

    });
}

因此,我的问题是:我应该使用 javascript 编码、JSON 编码还是两者都使用?我应该在哪里进行编码? 我正在使用 OWASP XSS API 进行 encodeForJavaScript 和 JSON 编码

JSON编码。 JSON 向浏览器表明该内容仅供数据使用,不应执行。 JavaScript encoding 表示一个潜在的可执行包。