上一篇介绍了web应用常见的10大安全问题,今天来给大家介绍一个WEB应用的常见5大攻击及预防,如文章中描述有误欢迎指出。
一、SQL注入
1、SQL注入的示例
2、SQL注入的预防策略
1)通过正则表达式,或限制长度,对单引号和双"-"进行转换等
2)尽量不要使用动态拼装SQL,可以使用参数化的SQL或者直接使用存储过程进行数据查询存取
3)不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接
4 ) 不要把机密信息明文存放,请加密或者hash掉密码和敏感的信息
5 ) 应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装,把异常信 息存放在独立的表中
6 ) 使用WEB漏洞扫描工具检测程序相对比较明显的SQL注入问题
二、跨站脚本攻击
1、XSS跨站脚本实例
2、XSS跨站脚本的预防策略
1)显示用户数据时对 “<>&”等HTML符号进行编码转换
2)过滤必要的XHTML属性及各种编码,尤其在WEB提供样式功能的时候
3)设计时要考虑到关键内容不能直接显示用户输入的数据,要有转换或后台间接审核的过程
4)用WEB漏洞扫描工具对程序进行检测
三、没有限制URL访问
1、没有限制URL访问示例
http://xx.xxx.com/purchase/shoppingcart_pop.aspx?backurl=http://yyy.yyy.com/product.aspx?product_id=20230002
2、没有限制URL访问预防策略
1)目标地址应限制只跳转到当前域内
2)如果需要跳转到外部链接需要有url的白名单
四、越权访问
1、越权访问示例
A用户有权限增加产品记录,B用户没有权限增加记录,A通过http://product.xxxx.com/product.aspx?user_id=201这个链接可以增加记录,把这个链接改B用户的user_id后也有增加产品的记录
2、越权访问预防策略
1)你可以用request获得之前的页面路径:Request.getHeader("Referer");然后你可以判断一下,这个是字符串类型的。
2)如果是需要登录的,你可以从session中获取登录信息,然后判断
3)你可以通过上一个页面传参,本页面判断,如果不匹配就处理,参数可以放在session当中或者使用request.setAttribute();这个方法,不要URL传参
4)jsp防止直接通过url访问是通过过滤器实现的
五、登录提示信息
1、登录提示信息示例
登录提示2、登录提示信息预防策略
作为程序的开发人员应该做到对登录提示信息的模糊化
网友评论