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参数)
# 1 楼答案
简单地告诉Do-Not-Rely and Trust-on-Client-Side-Validation
最好让所有servlet通过过滤器,并检查是否存在正确的身份验证
# 2 楼答案
您不应该试图使调用更加安全,因为用户总是可以嗅探它们,而坚定的攻击者可能会突破混淆。您需要确保服务本身是安全的。(即,具有适当的身份验证、授权,并对输入进行适当的消毒。)
# 3 楼答案
这里不应该担心SQL注入。这在数据库层上是可以避免的。我的意思是你可以利用
PreparedStatement
来避免SQL注入攻击看看这里,Preventing SQL Injection in Java