关注公众号: java乐园

现在程序员的能力参差不齐,有科班出身的;也有半路出家的。如何提高代码的质量,对系统的鲁棒性(稳定性)非常重要。

0x01:编写规范的代码

在编写代码时,给包名、类名、类属性等做一定的规范。可以达到见名知意的效果。具体可以参考《阿里巴巴Java开发手册》

链接: https://pan.baidu.com/s/1ANvBu1hidnvRCZILDGXuQA 密码: ugq8

一些常见的模式

项目jar命名:系统 - 模块。例如,cms-user

package命名:按照模块、controller、service、dao模式命名。例如,控制器层com.user.controller,服务层com.user.service,持久层com.user.dao。

工具类包:com.common.utils

类名:控制器类UserController,服务类UserService,持久类UserDao

生成器功能的类可以命名成XXXGenterator

加载器功能的类可以命名成XXXLoader

具体其他的规则参考《阿里巴巴Java开发手册》,就非常规范了。

0x02:静态扫描

根据约定的规范编写出来的代码,虽然达到了统一规范,但是并不能规范代码编写的风格。例如,没有按规范使用日志框架打印日志,而使用了System.out;没有按规范关闭输入流 / 输出流。这种代码质量的问题,则需要使用一些静态代码扫描工具,进行扫描,然后再进行修复。例如,使用 sonar 静态代码扫描,sonar 由2部分组成,分别是 SonarQube 平台,SonarScanner扫描器。

SonarQube: WEB 界面管理平台

展示所有的项目代码的质量数据

配置质量规则、管理项目、配置通知、配置SCM等

SonarScanner: 代码扫描工具

专门用来扫描和分析项目代码。支持20+语言

代码扫描和分析完成之后,会将扫描结果存储到数据库当中,在sonarQube平台可以看到扫描数据。

SonarQube 和 SonarScanner 之间的关系

以上只是接受了一种静态代码扫描的方案,有钱的大公司也会购买 Fortify,这种大型的商业软件进行代码扫描。

0x03:动态扫描 (安全扫描)

   静态扫描就是不运行程序,通过扫描源代码的方式检查漏洞;动态扫描则是在运行程序下,通过接口***的方式检查漏洞。在这种方案下,可以检查到 SQL 注入、XSS 脚本***、越权、目录列表等漏洞。这块常见的解决方案是 IBM 公司的AppScan 安全扫描工具(IBM Security App Scan Standard)。 AppScan 是 IBM 的一款 web 安全扫描工具,可以利用爬虫技术进行网站安全***测试,根据网站入口自动对网页链接进行安全扫描,扫描之后会提供扫描报告和修复建议等。AppScan 有自己的用例库,版本越新用例库越全(用例库越全面,对漏洞的检测较全面,被测试系统的安全性则越高)

工作原理:

通过探索了解整个 web 页面结果

通过分析,使用扫描规则库对修改的 HTTP Request 进行***尝试

分析 Response 来验证是否存在安全漏洞

链接:https://pan.baidu.com/s/19TAHl8lYGmE0O753ULyzYA 密码:yvle

如果想尝试使用 AppScan 可以参考以上博客

https://blog.csdn.net/u010013191/article/details/80733170
©著作权归作者所有:来自51CTO博客作者huangjinjin520的原创作品,如需转载,请注明出处,否则将追究法律责任

好知识,才能预见未来

赞赏

0人进行了赞赏支持

更多相关文章

  1. Jenkins GSoC : Code Coverage API plugin 一个新的代码覆盖率
  2. Git推送代码实战
  3. 前端开发工具,总有一款深得你心?
  4. 运维少年系列 python and cisco (3)
  5. 我的第38个代码
  6. 我的第39个代码
  7. error C2143: 语法错误 : 缺少“)”(在“;”的前面)
  8. 那个做外包的程序员,最后去哪里了?(二)
  9. 为什么Python受关注?Python热门的原因!

随机推荐

  1. Android(安卓)模仿360二维码扫描功能
  2. Android-安全退出
  3. android中shape的属性
  4. android兼容oppo手机刘海屏解决方案
  5. 详解Android AM命令
  6. Android学习之 使用依赖注入函数库Robogu
  7. android install
  8. Android 中插件的编写方法
  9. android开发之布局常用属性
  10. 安卓中RelativeLayout布局