You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
3.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

---
layout: post
title: 重建MaBBS的计划
tags: [MaBBS, 重构]
---
这就是所谓的只擅长建立计划吧(笑)<!--more-->
# 关于计划
重构计划:[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似乎更不安全了……
……
# 真正的问题
先想办法下决心写第一句话吧!