WEB站点攻防指南(一):wordpress应对基于404请求的CC攻击

最近几个月,网站访问量和爬虫索引量都有所增加,随之而来的服务器压力问题也与日剧增。经常出现,一大早收到阿里云停服通知的事。

目前本博客使用的是阿里云的虚拟空间(万网被阿里收购的那部分业务),虽说访问量有所增加,但也没达到一个月被停站4次的强度。

根据发生的时间点(凌晨1点到5点左右),初步推断是因为爬虫爬取频率太高。便更新了rebots.txt的规则:除了几个知名的爬虫(谷歌、百度等),其他全部禁止。——当然,如果遇到流氓爬虫,他们是根本不在乎rebots.txt规则的。

不过,网站还是时不时的被停服,安装并配置了“All In One WP Security”插件,随后通过这个插件发现网站有大量地账号注册行为,造成数据库暴增。幸好“All In One WP Security”有套比较完善的防机器注册的防护功能,这样,大量注册账号的攻击算是被拦截住了。同时,通过这个插件的防火墙和黑名单机制,设置了恶意IP访问地拦截功能,但收效甚微,每天都会有大量404的访问日志。——起初以为404只是消耗流量,并没有十分关注,只是定期地给黑名单里添加一些恶意IP。

好景不长,没几天,网站还是被攻停了。几次联系阿里云技术人员,排查了些恶意IP(当时发现了大量阿里云的IP,要么是安全检测的IP,要么是肉鸡),也没起到理想效果。在又一次停服后,我不得不降低了百度的抓取频次,起了几天左右,最后还是被停服了。——至此,阿里云一个月四次的启动机会被用完了。距离下个月还有十几天~😭

继续阅读WEB站点攻防指南(一):wordpress应对基于404请求的CC攻击

网站杂病诊疗

预防第一

  1. 启用缓存+静态化,减少重复计算的开销;
  2. 配置CDN加速,把静态资源的压力分摊;
  3. 隔离敏感资源(管理后台、备份文件、日志文件、安装入口等)的访问,防止DOS攻击;
  4. 全站静态化+DNS智能解析,把不同线路的流量分摊到不同服务器上;

预警第二

  1. 设置阀门预警,关注DDOS攻击;
  2. 定期分析日志(流量、404等),及时发现恶意UA和IP;
  3. 及时更新UA黑名单和IP黑名单,阻断后续的攻击;

急诊第三

  1. 闭站保护(这点阿里云做得很好,一天给关了两次😂);
  2. 及时止损(七牛的融合CDN不会自动停止服务,需要在收到预警后,人工干预——把异常IP加入黑名单或者停用服务);
  3. 以恶制恶,在被攻击的现场,把域名解析到127.0.0.1或者192.168.1.1或者网警的IP;

进京第365天:一周岁记!

今天是2019年7月的某天,距进京务工已有一年整,一路走来,感觉有好多话要说,却又不知道从何说起,也不知道该说些什么~

一、迷茫的-182.5天,从百草园到三味书屋

2016年,山东这个GDP大省,各实体企业严重凋零,号称“最冷的一年”。房地产行业却在土地拍卖和限购政策的推动下一路高歌猛进。不少知名的二流大学也趁机兴办了“房地产研究中心”。

在限购政策的号召下,广大人民群众纷纷涌入售楼处和房产中介所。李某人也冲破万难,掏空两代人所有积蓄,借贷入手了一套与我同龄的老爷板房。——说不上高兴,也没有悲伤。——从此过上了“ 上有老,上有老 ”的为还债而活的日子。说实话,每月几千块钱的房贷,其实不高,但相对当时的收入而言,是无法形成有效资产积累的!

2017年初,除了卖地和“扶持”大型企业,政策好像没有什么转变,中小企业纷纷倒闭,又号称“更冷的一年”。坚持还是离开,成了一个不得不面对的问题。

面对选择题,需要有充足的信息与分析工具。恰好,当时在学习的PMP给了我合适的方法论。用了半年的时间,我不断收集各方面的数据,去分析行业大趋势。——特别是人才分布流动图和资本分布流动图给了我很大启发。——离开,可能是最好的选择。(部分内容见《2018年辞职申请》

我无法决定出生在哪里,只是希望能选择埋在哪里~

我不知道为什么命运要将我送进北京城里去了,而且还是全国中称为最残酷的城市。也许是因为拔何首乌毁了泥墙罢,也许是因为将砖头抛到间壁的梁家去了罢,也许是因为站在石井栏上跳了下来罢,……都无从知道。总而言之:我将不能常到百草园了。Ade,我的蟋蟀们! Ade,我的覆盆子们和木莲们! ……

继续阅读进京第365天:一周岁记!

无关理想

小的时候被问及理想,信誓旦旦要做科学家;

大学毕业时再问理想,生活所迫却辍笔为商;

如今再谈理想,无关理想,仅为革新自我。

把“成为一个全面、健康、可持续发展的理性个体”作为一生奋斗之目标。

认知全面、身心健康、财务可持续:

身心健康为根本;

财务可持续为保障;

认知全面为突破点;

今天所言,无关理想。

商业的本质:参与者之间的等价交换

商业的本质是什么?我个人认为商业的本质是:参与者之间的等价交换。

关于这个问题,曾一度提出并反驳了如下的假设:

1.是对人力、财物和信息的整合。——无法成为商业的特性,而且财物不是必要元素。

2.像“商朝人”一样,不从事生产,而是提供物品流通。——能区分其他行业(农业、工业等)与商业的根本差别,到信息时代多了信息,以后时代也不清楚会多啥。

3.是交换——交换只是动词,无主体,交换本身又有公平的、不公平的、强制的。

4.是人与人之间的交换。——企业与个人也可以,以后机器人与机器人之间也可以,现在已有的自然界,其实也有商业行为。

最后形成“参与者之间的等价交换”的假设。——这里包括了主体(参与者)、隐含的客体(被交换的东西)与动作(等价交换)。

其中包含了几层意思:

1.广泛的主体,包括自然人、法人、未来某种智慧形态,以及已经存在的自然界的生灵(可以分析寄居蟹的换壳行为)。

2.广泛的客体,包括价值符号(货币)、物品(物物交换)、信息,以及未来任何有形无形的东西。

3.公平原则、自愿原则、诚信选择,参与方(可能是多方)能够通过交换,满足各方需要。

4.等价不是等价值。

Web开发常规调试方法与常见问题分析

自工作以来,本人一直从事web开发与相关技术攻关。期间,本人与同事都难免遇到一些反复出现的问题,今天整理出来,供现在与未来的同事,以及博友参考。

一、Web项目基本原理

现在的web项目大都已经前后端独立开发与部署。

前后端独立开发,一般是前端与后端通过web接口(常见的有RESTfulwebsocket)文档进行交流。前端开发人员先更具业务需求与实际原型进行ui的编程实现与事件的设计,并通过web接口进行业务数据的增删改查。后端开发人员根据定义的接口文档,实现业务数据的计算与增删改查,并对持久化的数据(一般保存在数据库里)进行操作。

前后端独立部署,前端项目均为html5/css/javascript/图片等静态资源,只需要web服务器就可以部署运行。常用的web服务器有apachenginx。后端开发人员则只需要把接口服务发布到应用服务器,并正确连接数据库。常用的java的应用服务器有tomcatjetty等。

对了,在此声明下,这里所说的前端,并不只是pc站的html页面,也包括微网站、微信小程序、APP应用等。

二、常规调试方法

根据上面的分工,可以明显地web开发中遇到的问题分为:前端实现问题,接口调用问题,接口实现问题。

a) 前端实现问题

前端实现问题是指,前端在调用接口前或者调用接口后,业务逻辑错误或者程序错误造成的系统用户交互异常。针对不用的前端,有不同的调试工具。

Pc站与微网站可以使用chrome(推荐)或者firefox的开发者工具进行调试。

微信小程序与公众号可以使用微信官方开发者工具进行调试。

APP使用开发环境的真机联调进行调试。

b) 接口调用问题

接口调用问题,多为前端调用接口错误或者接口本身存在bug引起的,无法获取前端人员预期的返回结果。

在开发环境中,可以使用上述的工具进行调试。在生产环境中进行故障排查是,pc站与微网站还可以通过pc浏览器进行故障分析。但公众号、小程序、APP需要通过charles等抓包工具进行分析。

如果没有接口调用的数据包,则前端程序存在问题;

如果接口的请求参数与请求头信息存在错误,则前端调用接口使用错误;

如果接口的响应参数与响应头信息存在错误,则接口实现存在问题;

如果接口调用正常,则前端程序对数据结果处理存在问题。

c) 接口实现问题

接口实现问题,多为后端开发人员没有根据正确的请求参数返回正确的响应结果。多由逻辑错误、数据持久化处理错误与系统级错误引起的。

在开发时可以通过断点跟踪就行分析。生成环境需要通过分析系统日志或者程序的日志进行分析。

三、常见问题分析

在以上几大类问题中,有些尤为突出,下面进行详细分析。 继续阅读Web开发常规调试方法与常见问题分析

开源之我见

2016年冬,我决定挣脱束缚的枷锁,不再作为他人的“试验品”,毅然走上那条路。

在迷茫无助之际,感谢我的精神导师——《极客与团队》的作者——引导我走向组建学习型分享型组织与开源运动的道路。

近些年,国内开源运动风生水起。开源项目如雨后春笋般地增长,其中不乏知名互联网企业的贡献,同时也可以看到新兴互联网企业的身影。

说到开源,一般的企业是不赞同,甚至坚决反对的。但这里不谈商业,只谈行业!

程序猿、攻城狮、产品狗等IT从业人员。应该清楚地看到,你们的舞台(亦或是战场)不仅仅是在你所效力的平台,是时候睁开眼去看看分布在全球各地的兄弟姐妹们了。

一、我们是对手,更是朋友

“如果你成功了,要感谢你的家人与朋友;如果你想持续成功,那请向你的对手致敬!”——我说的。同行,是个很微妙的关系。——即存在着竞争关系又存在着合作关系。——无法同时处理好这两种关系,可能会难以理解一些工作(甚至事业)上的“不可思议的游戏规则”。

兴许很多人已经看透了平台里这些潜规则,并能娴熟的做出对自己最有利的决定。但这里,我想说的是,“去与平行世界里的自己做游戏”。——这个“平行世界里的自己”不是“多重宇宙的自己”,而是分布在世界各地的,忙碌在所效力平台的自己(因为我们是一体的)。

感谢互联网,连接了你我的心;感谢开源运动,连接了你我的大脑。

“如果你自满了,那就出去看看外面的世界;如果你孤单了,那就去看看外面的世界。”开源运动,为全球的从业者搭建了一个开放、平等、自由的交流平台。在这里,你可以看到行业前沿,为自己的事业发展指明道路;在这里,你可以进行思想与思想的碰撞,激起创新的火花;在这里,你可以与全球最优秀的同行同台竞技,保持自己的最佳状态。

这是你的归宿——在这里你可以遇到志同道合的朋友,甚至人生的贵人。这是你的起点——积蓄好力量,望着远方,继续出发。 继续阅读开源之我见

2019年下,中短期规划

一、短期规划(3个月)

技术:

  1. 进一步提升常用的前端技术栈,深入了解Vue使用方法与实现原理。提高工作中定位问题、解决问题的效率。
  2. 保持对前沿技术的敏感度,积极了解最新技术。

管理:

  1. 积极关注负责的项目,优化多项目并行情况下地项目安排,保证高优先级、高价值项目地顺利交付。
  2. 在工作中逐步落实之前学习和总结的工程方法论和敏捷项目管理方法。

业余:

  1. 广泛涉猎其他领域知识——特别是世界观与方法论,保持开放的心态,持续精进。保持每月一本到两本书籍的阅读量。

二、中期规划(一年)

技术:

  1. 比较全面地整理Web技术栈,通过查缺补漏的方式,梳理并完善Web技术栈。
  2. 强化全栈优势,通过工作或者个人项目,进行落实。

管理:

  1. 通过自费学习方式,进一步提升个人项目管理能力和工程管理能力。并把学习到的理论知识因地制宜地应用到生活和工作中去。
  2. 通过分享和亲身实践的方法,向周围人传输工程管理和项目管理相关的世界观和方法论。

业余:

  1. 广泛涉猎其他领域知识,并保持一定的阅读量。
  2. 积极参与业内活动,开拓眼界,保持“饥饿感”。