安全扫描工具Arachni源码分析(一)

Arachni是一个基于Ruby on Rails框架的Web安全漏洞扫描工具。

1. Ruby on Rails

Ruby on Rails ,缩写ROR,是一个Web框架,包括两部分内容: Ruby 语言和 Rails 框架。Ruby一直以来流行于日本,直到2004年,26 岁的丹麦人 David Heinemeier Hansson 提出了Web框架 - Rails。这才让全世界人们,开始了解Ruby和Rails的灵活与高效。

1.1 Ruby

日本人松本行弘( Matsumoto Yukihiro),在 1993 年开始着手 Ruby 语言的研发工作。1995 年 12 月 推出了 Ruby 的第一个版本 Ruby 0.95。语言特点:
  • 纯的面向对象语言
  • 解释型脚本语言
  • 动态载入
  • 自动内存管理机制
  • 多精度整数
  • 迭代器和闭包
  • 开源项目
  • 使用约定,而不是XML配置
  • 支架系统。可以自动为数据表创建CRUD操作和前台视图
  • 开发效率高,代码量少
  • app/assets目录。包含了前端的资源,javascript、css、images
  • app/controllers目录。包含了所有的controller,在Rails中一般controller就是指REST架构中的资源。controller里实现了各种action,用于响应web请求。 也是MVC架构中的C层
  • app/helper目录。用于存放一些helper方法,这些helper方法一般用在view层,用于组织一些用于view的逻辑代码
  • app/mailers目录。用于放和邮件发送相关的代码
  • app/models目录。用于放各种数据库映射的model,一些数据操作以及业务逻辑代码,都应该放在这里。 MVC架构中的M层
  • app/views目录。用于放views层的模板,经过controller渲染这些模板,最后生成可供用户访问的页面。MVC架构中的V层
  • bin目录。Rails的命令,以及bundle、rake命令
  • config目录。配置项目运行规则、数据库等
  • db目录。当前的数据库模式,以及数据库迁移
  • features目录。数据文件
  • lib目录。项目扩展包
  • log目录。系统日志文件
  • public目录。公共资源,包含静态文件和链接资源
  • script目录。 项目运行或清理的脚步
  • spec 目录。RSpec工具的测试文件
  • tmp目录。临时文件文件
  • vendor目录。第三方代码,插件等
  • db/seeds.rb。初始化数据库
  • http://liuzxc.github.io/blog/rspec-usage/