起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2093|回复: 1

[分享] baasServer filter 解决SQL 注入攻击的方法,

[复制链接]

4

主题

8

帖子

59

积分

初级会员

Rank: 2

积分
59
QQ
发表于 2018-2-26 16:18:18 | 显示全部楼层 |阅读模式
本帖最后由 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问我。     
发表于 2018-2-26 16:22:16 | 显示全部楼层
自定义sql的两种实现
http://docs.wex5.com/wex5-server-question-list-2012/
可以写java代码传参  

也可以使用 data.filter.setVar 传参
http://docs.wex5.com/wex5-server-question-list-2006/

如果filter 想避免注入 ,那就只能  sql完全后台写,前端只传参
保证前端 不能写sql语句片段才可以!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-5 21:47 , Processed in 0.118020 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表