开发一个简单blog(无CSS实现;包含撰文,评论等多种功能)

发布于 2021-07-03  52 次阅读


背景

逆向太难了,学成傻逼了,果断转web

老话说的好,要想学安全,得先学开发,于是笔者思考了一下:

目前只会简单的js和html,那就开发一个纯后端(PHP+MySQL)的博客实现吧,这样就可以学习PHP和MySQL啦

阅读本文前置知识

虽说笔者在开发这个项目前毫无后端经验,但是强烈建议读者至少学会PHP基础语法再看本文

正文

本文主要是记录开发过程中遇到的一些问题,而非手把手教学

环境

由于笔者开发机之前配过php和MySQL环境,现在的环境并不干净,尝试了各种解决办法之后依旧连接不上localhost(MySQL),最终使用phpstudy终于卸载干净了,然后依据菜鸟教程上面的方法配好了MySQL8.0环境

在这一过程中途还产生了连接远程服务器(也就是此博客的服务器)上面的数据库,但是在phpstorm里面连不上,不知道是哪里出了问题。。。(用户名密码正确,端口全放开了,数据库权限也放开了,SSH可以连上,没有挂任何正向代理或反向代理服务)

而在datagrip里面是可以正常连接的。。。

开发构想

实现一个主页,主页当中有欢迎语和菜单栏,菜单栏指向文章编辑器,文章浏览页,个人资料页

其中,文章编辑器会故意留下安全性问题,便于后续注入测试

个人资料页提供修改密码功能,并会故意留下安全性问题,便于后续注入测试

文章浏览页会按照时间顺序显示所有文章的标题,并将标题超链接至对应地址

文章页包括文章主体内容和一个评论区,评论区内容不会做任何过滤,便于后续测试XSS注入

开发过程遇到的问题

根据构想,许多页面的首要任务是连接数据库,然后读取或写入数据

根据代码复用原则创建文件connectToDB.php

<?php
# 永远不写重复的代码
$host='localhost';
$user='root';
$passwd='root';
$dbname='myblog';
$conn=mysqli_connect($host,$user,$passwd);

然后在需要连接数据库的php页当中

include_once 'connectToDB.php'

然后复用$conn变量

但是实测发现跨php文件使用变量(即便是全局变量)是被禁止的,改为使用$_GLOBALS数组

顺便查了一下Session和Global的区别,下面这篇帖子说的非常一针见血,一看就懂

https://stackoverflow.com/questions/14848145/what-is-the-difference-between-session-variables-global-variables-in-php/14848246

尾声

这篇文章写道一半的时候重装电脑了,然后忘记备份这个博客的源码了.....

最终博客是全都开发完成的状态,可惜文章烂尾了