0

我有一个带有几个组合框、一个网格和一个用于刷新网格的按钮的 JSP 页面。每当用户按下刷新按钮时,JSP 页面都会调用 servlet,执行查询并根据组合框中的值使用新检索到的数据刷新网格。

所以在Javascript中,这或多或少是我正在做的事情:

<script>
    function getSRCHGTData() {
        $.get('api/ServletTest', function(data) {
            alert(data);
        });

        var comboBox = $("#cb_cus_cd").data("kendoComboBox");

        var grid = $("#grid_SRCHGT").data("kendoGrid");
        grid.dataSource.transport.options.read.url = "api/srchgt_read?cus_cd=" + comboBox.value();

        grid.dataSource.read();
        grid.refresh();
    }
</script> 

像这样传递参数对我来说似乎并不安全,因为人们可以轻松查看 servlet 的 url 并执行 SQL 注入。

如何让通话更安全?

编辑:详细说明:servlet 在查询数据库之前已经完成了验证输入的工作(清理输入、准备语句等)。我更担心的是我在通过 URL 调用 servlet 时暴露了参数(例如,他们可以从下面查看 cus_cd 参数)

4

3 回答 3

1

SQL 注入在这里不应该是一个问题。这可以在数据库层避免。我的意思是你可以利用PreparedStatement它来避免 SQL 注入攻击。

看看这里,防止 Java 中的 SQL 注入

于 2013-03-15T03:32:37.813 回答
1

您不应该尝试使调用更安全,因为用户总是可以嗅探它们,而坚定的攻击者可能会突破混淆。您需要确保服务本身是安全的。(即具有适当的身份验证、授权并适当地清理输入。)

于 2013-03-15T03:35:20.953 回答
0

简单地告诉Do-Not-Rely 和 Trust-on-Client-Side-Validation

通过过滤器传递所有 servlet 并检查是否存在正确的身份验证总是更好。

于 2013-03-15T06:14:52.523 回答