--- layout: post title: 重建MaBBS的计划 tags: [MaBBS, 重构] --- 这就是所谓的只擅长建立计划吧(笑) # 关于计划 重构计划:[Mabbs重构计划](https://github.com/users/Mabbs/projects/1) 需要重构的项目:[Mabbs](https://github.com/Mabbs/Mabbs) ## 关于这个项目 这个项目是我初中的时候就开始写的,当时我在网络上看到了一种很有意思的论坛,叫做Telnet BBS,貌似以前有名的高校都搞这个东西。那时刚好在用一个极其破烂的手机(Mem:256MiB,CPU:Spreadtrum SP8810,Rom:512MiB)在那里学着写Shell([关于这一段历史](/2019/02/01/history.html#linux-shell时期))。看完Telnet BBS的介绍之后,我膨胀了,我觉得以我当时的水平,肯定能写出来,于是我从此走上了填这个万年巨坑的不归路。 当时我不但膨胀,而且傻,把一个有着很明显的注入漏洞的那么一个BBS写出来之后居然还发到当时Bilibili开的一个类似贴吧一样的东西里(现在已经没了),那时候每个路由器还是动态公开IP的,于是我就那么放在了网上,丝毫不担心有人会拿它当跳板机(是我想多了LOL) 在编写之中,我了解到了CGI,于是它就可以既能用网页版,又能用命令行版。 到现在为止,这个BBS仍然有很严重的注入漏洞……而且小时候写代码也没什么规范,基本上是边学边写,于是过了一个高三没写,那个代码我是一个字也看不懂了23333 # 现在重构的打算 本来是想写在那个Project里的,但是后来想了想,还是写成博客比较好,那个东西似乎不太适合我(就是想水一篇啦) ## 1. FastCGI 我很早以前就想把这个破烂CGI改成FastCGI,但是网上找了半天,基本上也没看懂什么。不过后来用上了服务器,学了Nginx,才明白,原来所谓的FastCGI就相当于是自己又写了一个服务器软件,只是这个比较简单,只是它不再是执行后就结束的程序,而是在后台挂着,继续等待下一个请求。而Nginx起到的作用就是提高这个自制服务器的安全性,另外可以提前输出,保证速度,其实说白了就是反向代理。这次看看重构能不能加一个这个功能。 ## 2. 前后端分离 最近好像挺流行这个的,就是要用Javascript,不过这个我现在也学的差不多了,不像以前,整个BBS里没有一句Javascript。 这样干还有一个好处,就是我可以不限定客户端,假如我以后学了其他语言,就可以利用统一的API调用了 ## 3.POSIX 这可是我写的东西的一大优点,我写的BBS就算是只有一个Busybox也能运行,保证了在任何一台设备上都能完美运行,而且一句sed、grep、awk都没有用,就连这三件套没有都能用哦! ## 4. Hash&Session 之前我写的BBS全部都是明文保存密码的,不过现在我学了那么多关于网络安全的知识,至少Hash还是要有的。不过我不打算用其他工具,我要自己写一套!之前确实是试了试Hash,不过感觉好像又不太对……回头再仔细查一下吧。 之前BBS登录时密码都是放在Cookie里的,现在想想那真是太蠢了,本来这个BBS就全都是XSS漏洞,再明文放密码那不就是想要谁的密码都可以吗?(虽然开了HTTPONLY)不过为了提高安全性,我搞了一个类似于Session的东西,但是我不太会写随机数,所以感觉这个Session似乎更不安全了…… …… # 真正的问题 先想办法下决心写第一句话吧!