分享三种常见的安全漏洞
输入输出验证不充分
SQL注入
定义
SQL注入是SQL语句插入到传入参数的攻击,之后再将这些参数传递给SQL服务器加以解析并执行。
成因
代码中有拼接的SQL或HQL语句
危害
- 拖库:导致数据丢失、数据窃取、数据破坏或拒绝服务
- 提权:完全接管操作系统
防范
思路:预处理和参数化查询
- 预处理和参数化查询PreparedStatement
使用相关的框架如Struts、Hibernate、Ibatis等
- 执行严格的输入验证
使用正规表达式,严格检查输入的类型、长度和内容
跨站脚本攻击(XSS)
定义
跨站脚本攻击(XSS)通常是指攻击者利用网站程序对传入参数值过滤不足,输入可以显示在页面上对其他用户造成影响的HTML、JS恶意代码。
成因
- 传入值验证不严格、用户能够控制传入值
- 未经处理直接输出到客户端网页中
危害
劫持用户会话、插入恶意内容、重定