我应该使用JSON econding,JavaScript编码还是两者兼而有之?

时间:2015-10-06 19:46:09

标签: javascript json jsp xss

我已经开始使用网站的安全性,我的任务是防止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编码

1 个答案:

答案 0 :(得分:1)

JSON编码。 JSON向浏览器指示内容仅为DATA且不应执行。 JavaScript编码表示可能的可执行包。