chili 默默学编程

新增微博功能(弹弹弹)


本文目录:

1、新功能介绍;

2、使用 vue 的体验;

3、屏蔽实施攻击的 IP


新功能介绍

- 链接:页面导航栏(弹弹弹),或者链接地址:http://shenkeyang.cc/tweet/

- 预期用途:写一些短篇记录(如几天的计划、短总结、简要问答等)

- 样式如下:

Image

- 目前功能:快捷注册(即时判断用户名合法性)、登陆、发微博、评论

- 计划功能:消息提醒、信息过滤查找(按内容、按作者)、发图片、部分加载信息


使用 vue 的体验

此页面后端 API 仍然用的是 python flask,前端使用了 jquery ajax vue。

vue 没啥好总结的,中文文档写的很清楚。

中文文档链接在此:https://www.bootcdn.cn/vue/

我搜索的过程中发现其作者是中国人,叫做尤雨溪。

知乎上他回答了一个问题,很有意思。

有人问:

为什么vue的更新记录不能有中文,中文文档也一直滞后?

他说:

为啥我要牺牲陪老婆孩子的时间来替你省学英语的时间?

很有道理,还很霸气。知乎链接在此:https://www.zhihu.com/question/49884331/answer/118492169


屏蔽实施攻击的 IP

晚上吃饭的时候,居然有人攻击我的网站,,真是闲的蛋疼啊。。

攻击的方式是发送大量的数据,如短短几分钟新增了 4000 多条 tweet,新增了 2000 多条 回复。

查看服务器数据统计,也是明显数据增大。

Image

Image

被攻击的原因是因为我的网站有一些地方设置的规则很简单,如回复功能、发微博功能,并没有设置复杂的资料验证逻辑,因为网页主要是少数几个人用,所以就对其他人的限制少一些,只是在发长博文的时候,有一个用户验证。

针对这个攻击,我做了 3 件事:

  • 查到实施攻击的 IP 地址
  • 屏蔽 IP 地址
  • 删除注入的数据

查到实施攻击的 IP 地址:

- 打开 nginx 的 log 日志目录(服务器为 ubutu 系统)

$ cd /var/log/nginx

- 查看 IP 访问统计

$ awk '{print $1}' access.log |sort | uniq -c |sort -r -n -k 1|head -n 20

查到如下 IP

Image

屏蔽 IP 地址:

- 在 nginx 中进行设置

    location / {
        deny 111.178.8.249;
        deny 113.61.50.14;
    }

删除注入的数据:

- 在服务器操作数据库(mongodb)

$ mongo
$ use db
$ db.collection.remove({username:'1'})


如有必要,将来可能要做的事:

  • 在 nginx 增加自动屏蔽访问频率过高的 IP
  • 在前端给 JavaScript 代码设置扰乱加密


reply ( 0 )