|
本帖最后由 xuzhijun112 于 2018-2-26 16:19 编辑
baas 自带的功能非常方便好用。特别是FILTER 可以自定义查询条件,但是带来的问题也是很严重。那就是SQL 漏洞攻击。如何在不影响使用习惯来解决这个问题呢?
那就是在CURD这个基础上做进一步的开发。 也就是我们把JS 里要用到的 FILTER 放到后台。
自己建一个java 例 test。
packge com
public class test{
public static JSONObject test(JSONObject params, ActionContext context) throws SQLException, NamingException, java.sql.SQLException {
//JSONObject variables = common.CRUD.getVariables(params, context);
params.put("condition", "1=1");
params.put("filter", "party_no=:party_no");
return common.CRUD.query(params, context);
}
}
然后把filter 的条件放到JAVA后台。前台JS 增加需要查询的变量 data.filters.setVar("party_no",xxxx);
然后将.m 文件的 action:common/CRUD/query 改为 com.test.test
通过这种方法就可以解决sql注入攻击的问题。 用户和系统原有的一模一样。而且更加灵活。
后台JAVA 可以根据前台判断提交的变量来自己组合 filter 语句。不明白的可以加QQ:17942977问我。 |
|