beego高性能框架
前言
在上一篇文章What!!! so fast中,我介绍了golang这种语言,并使用golang开发了一个端口扫描工具。现在我的主要工作是做网络安全方面的开发与策略设计,在开发中,以后更多地是用golang,C++,shell,python可能会用的少一点。
为什么选择使用golang而不是python,是由于特定的环境导致的,公司内网环境隔离是非常好的,在开发机中不能使用pip安装依赖的,只能手动setup.py安装的,简单的包还可以,如果一个包还依赖着很多包,你会崩溃的。。。所以我选择了golang,在本地调试好,直接打包成linux下的二进制文件,直接可以运行,so happy。。。
本篇的主题是聊一聊 beego 以及web安全中的前后端建议。
第一节
Beego简介
beego 是一个快速开发 Go 应用的 HTTP 框架,他可以用来快速开发 API、Web 及后端服务等各种应用,是一个 RESTful 的框架,主要设计灵感来源于 tornado、sinatra 和 flask 这三个框架。整体结构如下:
beego 是基于八大独立的模块构建的,是一个高度解耦的框架。当初设计 beego 的时候就是考虑功能模块化,用户即使不使用 beego 的 HTTP 逻辑,也依旧可以使用这些独立模块。
beego 是一个典型的MVC的框架,如果你们用过ThinkPHP会发现beego会和它非常相似。它的执行逻辑如下图所示:
到目前为止,我使用它开发了一个api应用,还是非常爽的。大家如果感兴趣,直接访问 https://beego.me/docs/intro/,或者阅读原文,今天主要是简要介绍,之后做出来项目给大家分享一下。
第二节
web安全中的前后端
不应该说前后端,而是前后台。如果说PHP大家一般认为是做后台的,其实也不尽然,在前后端分离的场景中,它只是前台中的后端。在大公司的应用场景中,基本上都是前后台分离,这样做的安全性相对较高。
前台主要负责Web界面的渲染和用户的逻辑,用户的统一接口认证一般是通过soap服务。涉及的技术(我现在用到的),包括web前端的三剑客html+css+js 和PHP。
后台主要负责的是用户权限和数据的api接口。前台和后台之间进行Ajax通信,同时前后台之间的通信对ip和访问频率进行限制。总体上来看就是下图的结构(没有专业的画图工具,有点简约)
首先,对于开发来说,分工独立,只要前后台确定好json接口即可。
然后,安全性上是有保障的,站库分离,上传shell到前台,也不会拿下数据库的。即使发生入侵,业务的切换也会相对容易。