常见JavaWeb安全问题和解决方案

本文详述了JavaWeb常见的安全问题,包括SQL注入、XSS攻击、敏感信息泄露、越权、文件下载和上传的风险,以及相应的修复措施,如预编译SQL、设置XSSFilter、权限校验和文件路径限制等。
摘要由CSDN通过智能技术生成

1、注入

SQL注入:程序向后台数据库传递SQL时,用户提交的数据直接拼接到SQL语句中并执行,从而导入SQL注入攻击。

字符型注入:黑色部分为拼接的问题参数

select * from t_user where name='test' or '1' = '1';

数字型注入:黑色部分为拼接的问题参数(对于强类型语言,字符串转int类型会抛异常。所以这种注入方式一般出现在php等弱类型语言上。

select * from t_user where id=1;drop table t_userinfo;

搜索型注入:对表名进行猜测

select * from t_user where userName like ‘%test%' and 1=2 union select 1,2 from t_admin';

修复方法:

a、在mybatis中使用#把参数当做一个字符串,不能使用$符号

b、在JDBC中使用预编译的方式对参数进行绑定,详细如下:

String userName = request.getParameter("userName");
String sql = "select * from t_user where userName = ?";
JdbcConnection conn = new JdbcConnection();
PreparedStatement pstmt = conn.preparedStatement(sql);
pstmt.setString(1,userName);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值