有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使来自JSP的Servlet调用更安全?

我有一个带有几个组合框的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参数)


共 (3) 个答案

  1. # 2 楼答案

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

  2. # 3 楼答案

    这里不应该担心SQL注入。这在数据库层上是可以避免的。我的意思是你可以利用PreparedStatement来避免SQL注入攻击

    看看这里,Preventing SQL Injection in Java