繁体   English   中英

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

[英]How to make Servlet calls from JSP more secure?

我有一个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参数)

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

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

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

简单地说明不依赖和信任客户端验证

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM