MyCloud PC客户端(1.0.7.17)修改无法使用问题

最近新型肺炎闹得确实很厉害,有感动,有流泪,有不忿。为疫情中的逆行者们祈祷、祝福,谢谢你们的付出,一定要注意安全,平安归来。加油武汉,加油中国。

一直是使用My Cloud搭建私有文件存储,最近升级版本后,在PC上出现了无法使用的问题。

然后在无聊的抓包中,又巧合的发现了问题的所在,并通过修改客户端的PE文件,来修复问题。

接下来,通过简单的过程来说明下是如何发现和处理的。

前后端分离的跨域介绍,以及使用webpack构建前端、Nodejs后端项目

webpack这个工具,已经是各大主流框架、项目毕不可少的了,也确实大大方便、简化了开发人员的日常工作。在vue-cliangular-clicreate-react-app等等一些脚手架中也会常常遇到。

使用webpack来构建、打包前端项目,尤其是在SPA(single-page application)的场景,已经成为了主流,其中附带的webpack-dev-server也是非常强大的功能。

但是在nodejs后端项目的构建、打包方面,我也看到了有的社区中的一些讨论,大多数持有的态度为是不需要的。其实从我个人的角度来看,我觉得是非常必要的,我认同大家所说的只是脚本项目本来基于nodejs就都是支持的,没必要打包,我认为打包是必要的,主要指的是交付部署方面。

如果只是站在前端的角度看待问题,webpack为项目提供了语法降级兼容、CSS预编译、JS合并压缩、公共代码抽离、图片转码等等,也确实在浏览器兼容性、网页优化等方面拥有非常强大、完善的插件。

在nodejs的后端项目上,确实是没有这么多事儿的。只有脚本,聚焦的也就是脚本语法转换、打包这些简单的功能,就类似于我们在其他语言开发完模块功能后,都是会打包为动态链接库一样,来进行发布、部署。

具体需不需要在nodejs的后端项目中使用webpack,仁者见仁智者见智,更多的根据实际场景来考虑考虑,也不能一味的追求。

刚好最近为公司产品做了个B/S的小工具,也将自己的一些思考、做法,尽量详细的整理出来,供大家以作参考。

一次微信活动刷票的絮叨

0x00 起因

近日一好友推来一链接,说是自家猫咪们正在参加一个评选活动,需要投票支持。举手之劳,再加上两只小猫也是从他们小不点的时候看着长大的,甚是讨人喜欢。没咋细看,投完票之后回到首页看到的是这样的

活动首页图

mpvue在前端项目的应用设计

闲话少叙,书归正传。

0x00 故事背景

在有限的人力成本情况下,需要按时上线产品,主要包括:

前端项目:小程序A(C端)、小程序B(B端)、PC管理端
后端项目:平台API项目

其实站在后端开发来讲,由于是服务于业务的系统,又是产品前期,所以也就Spring Cloud一套打完,这里主要想细说的是前端几个项目的情况。

“作死”协奏曲 —— 同步

理想很丰满,现实很骨感,汇总一下这段时间自己的“作死”之秀,望好友们“引以为戒”,莫要像我一样捶胸捣足,真的是应了那句老话你以为你以为的就是你以为的

其实整个“作死”秀主要围绕着就是同步,亦可理解为协同办公(内心旁白:我不想每天背着那么重的电脑来回跑),可是作为一个“程序猿”,真以为下班出了公司就可以将正在进行的项目置之脑后么,为了自己的轻身大计,毅然决然的踏上了“作死”之路。

内容预告:ESXI普通主机安装, 设想的编译方式, 项目代码同步, 日常资料同步

(又被黑)基于MySql的弱口令入侵

下午另一台服务器也突然报警,经过核查后,确认被黑,MMP,我觉得这是挑衅呀,没办法先清除木马程序,感觉真是多事之秋啊。

通过异常进程确认到木马文件,然后停止后自动重启,先检查crontab,果然多了一个异常的定时任务:

1
*/3 * * * * root /etc/cron.hourly/cron.sh

这个名字起得就不评价了,明显就是个外来者,然后立刻停止cron服务:

1
$ /etc/init.d/cron stop

记服务器被入侵过程分析(基于Redis弱口令入侵)

晚间突然服务器CPU使用率告警,刚开始没有放在心上,结果连接服务器一看,瞬间就精神了,CPU使用率直接飙到300%多,明显不是误报,立马跟踪异常进程,最终确认中招了,恶意木马。没办法,手动先清除木马,结果,刚清除木马进程、文件后立即又会复制运行,明显是有守护进程存在的,通过分析木马脚本追踪到守护进程,最终才删除掉恶意程序。

虽然哥已不在江湖(瞎说的),但是这样被黑心里也是不爽的,虽然只是一台搁置的测试服务器,结果还是中招了。亡羊补牢,那就分析下是如何进来的,然后做出应对防范。

通过查看服务器对外端口,初步没看到异常,数据服务、web服务、流媒体服务,都是测试使用,web服务也没有上传漏洞,注入也不应该,都是静态文件,最后就定位到了Redis的服务上了。

由于为了方便测试,Redis随手设置的是弱口令,随便一个猜解程序(看来我也要重新写个扫描程序了)应该跑跑就出来了。那么可能就是通过Redis的弱口令漏洞进来的。本能的直觉,可疑,那么就自己来利用下Redis的弱口令入侵,看看是否可行。

基于Redis弱口令的入侵

Angularjs2 组件(指令)交互

在组件化开发中,会将相同的功能或者业务封装为独立的组件,以达到组件复用,在各个组件的组合使用中,避免不了在独立组件间进行数据事件的传递。

在Angular1中,我们常常会使用$scope来进行交互绑定,这里我们就按照官方文档的顺序简单聊下Angular2中的交互,主要的交互方式大致有一下途径:

接下来将通过一个示例来完成各种方法的学习。

Angularjs2 指令

在Angular1中,会经常使用到指令,主要作为一些功能组件的封装,通过module.directive(name, function){}来创建一个指令,然后通过restrict属性的ECMA来约束指令的使用位置,所以我们可以将一些通用的模块功能,封装为一个指令,然后在开发中直接使用指令就可完成相关功能的导入,而在Angularjs2中,指令的这个目标当然还是保持一致的。

在Angularjs2中,指令主要分为三种类型:

  1. 组件 - 带有模板的指令(组件皆指令)
  2. 结构型指令 - 作用于DOM元素修改视图结构的指令(NgIfNgFor等)
  3. 属性型指令 - 作用于DOM元素的外观和行为的指令(NgStyle等)