来杯菊花茶

生活不只是眼前的苟且,还有诗和远方

0%

最近的项目在做一些数据方面的集成,五花八门的系统对应的接口更是千奇百怪,数据集成的过程总结成八个字就是:逢山开路,遇水架桥。

恰好这两天碰到一个问题,我们要集成的WEB系统没有提供专门的数据集成接口,没有API可以调,数据库更是不让访问,万般无奈之下,我在想是否可以用python自动爬取页面。web页面有SSO,用的应该是开源的CAS框架,并且后面的页面全都是由动态JS、AJAX异步加载进去的,这显然不像普通的静态页面那样直接用Scrapy上去就是一顿干,要完美的模拟登陆动作并且还要爬取后面的动态内容,对页面结构和爬取内容的分析是必不可少的。

工具

  • Chrome
    页面分析工具非常简单,只需要最新版本的Chrome浏览器即可
  • python3
  • requests
Read more »

Kafka因为具有优秀的并发读写性能在大数据收集传输过程中有的非常重要的作用。近期项目计划将Kafka作为数据建模分析的总线使用,但是因为项目的特殊性需求,我们在两个不同的地理位置上部署了两套Kafka队列,并且要求其中一套能把数据传递到另一套的指定队列,说简单点就是需要从一个Kafka队列里读数据,然后写到另一个Kafka队列里,读写Kafka队列的工具有很多,相比Apache Flume我们更倾向于Logstash。本文简单介绍一下何如基于Docker容器配置Logstash集成Kafka。

实验场景

假设有两个Kafka的Topic:

  • 第一个Logstash实例读取实验机器的linux系统日志,将文本原样发送到Test2队列;
  • 第二个Logtash实例从Test2队列读取消息,转发到Test3队列

实现用Logstash读/写队列实验。
场景说明

Read more »

因为工作的原因,近期笔者开始持续关注一些安全咨询网站,一来是多了解业界安全咨询提升自身安全知识,二来也是需要从各类安全网站上收集漏洞情报。
作为安全情报领域的新手,面对大量的安全咨询,多少还是会感觉无从下手力不从心。周末闲来无事,突发奇想,如果搞个爬虫,先把网络安全类文章爬下来,然后用机器学习先对文章进行分析,自动提取文章主成分关键词,然后再根据实际需求有选择的阅读相关文章,岂不是可以节省很多时间。
如果能提取文章的关键词,还可以根据近期文章的关键词汇总了解总体的安全态势和舆情,感觉挺靠谱。

整体思路

如前文所述,思路其实很简单:

  1. 用Scrapy先去安全咨询网站上爬取文章的标题和内容
  2. 对文章的内容进行切词
  3. 使用TF-IDF算法提取关键词
  4. 将关键词保存到数据库
  5. 最后可以用可视化将近期出现的比较频繁的关键词做个展示
    看起来也不会很难,文末有代码的链接。
    Read more »

Splunk是业界赫赫有名的数据分析工具,比较擅长BI和安全日志分析,我司很多部门都有购买其产品和服务。最近有个需求要把Splunk和分布式消息队列Kafka做个集成,Splunk官方提供的一个Kafka的插件,可以很容易的做到与开源Kafka集成,本文简单描述一下集成的配置方法。

这里假设你的环境里已经搭建好了Splunk和Kafka(Splunk搭建请参考,Kafka搭建请参考)。

概述

Splunk Add-on for kafka
支持三种输入

  • 监控Kafka本身的日志,需要在Kafka的机器上部署Forward
  • 用JMX输入来收集kafka集群的性能指标,这还需要额外安装一个Splunk Add-on for JMX来跟Kafka的JMX对接
  • 与Kafka的topic对接直接消费数据,通常会把插件装在heavy forwarder上,通过他与Kafka对接一个完整的部署架构和数据流向如下图所示,实际上前两种输入都是可选的,根据实际需求选择即可:
    Read more »

本文基于Docker搭建一套单节点的Kafka消息队列,Kafka依赖Zookeeper为其管理集群信息,虽然本例不涉及集群,但是该有的组件都还是会有,典型的kafka分布式架构如下图所示。本例搭建的示例包含Zookeeper + Kafka + Kafka-manger

mark

Read more »

本文基于Splunk Forwarder自动收集Windows日志,将日志发送到Splunk做统一收集,并建立简单的图标分析,实时监控Windows系统日志。

Splunk系统安装

Splunk官方提供60天,500M的免费试用期,本文基于官方的免费Docker镜像搭建实验环境,安装过程非常简答,这里不再赘述,可以参考Splunk Docker文档相关内容搭建简单的Splunk环境。
Splunk主界面

Read more »

本文简要介绍一下开源Java混淆编译工具ProGuard的实际应用案例。我们知道某些情况下软件的作者需要保护软件本身不被使用者反编译,或者给对方反编译制造一定的障碍,为了达到这个目的人们可以有很多不同的做法,比如在编译的过程中把一些变量名替换成无意义的abcd或者将类名方法打散等等,制造一些混乱让反编译的人很难读懂你的逻辑;还有一种是对java编译后的class文件加密,然后用自定义的classLoader去解密并加载到JVM,这种方式有个问题,一旦对方拿到你这个自定义的ClassLoader那么保密也就不存在了。相信类似的技术手段还有很多,用ProGuard对Spring Boot的应用做混淆处理

Read more »

1. 概述

本文简要总结一下如果使用Spring Security OAuth和Spring Boot来实现SSO,文末有样例代码。不了解OAuth2.0协议的同学请参考《OAuth2.0协议原理详解》

整个工程包括三个独立的应用,一个认证服务和两个客户端应用,结构非常简单。当一个用户访问客户端应用中被防护的API时,系统会被自动重定向到认证服务,之后我们使用OAuth2.0的Authorization code授权方式来实现认证授权。

Read more »

OAuth 2.0 是目前比较流行的做法,它率先被Google, Yahoo, Microsoft, Facebook等使用。之所以标注为 2.0,是因为最初有一个1.0协议,但这个1.0协议被弄得太复杂,易用性差,所以没有得到普及。2.0是一个新的设计,协议简单清晰,但它并不兼容1.0,可以说与1.0没什么关系。所以,我就只介绍2.0。

协议的参与者

从引言部分的描述我们可以看出,OAuth的参与实体至少有如下4个:

  • RO (resource owner): 资源所有者,对资源具有授权能力的人。如上文中的用户Alice。
  • RS (resource server): 资源服务器,它存储资源,并处理对资源的访问请求。如Google资源服务器,它所保管的资源就是用户Alice的照片。
  • Client: 第三方应用,它获得RO的授权后便可以去访问RO的资源。如网易印像服务。
  • AS (authorization server): 授权服务器,它认证RO的身份,为RO提供授权审批流程,并最终颁发授权令牌(Access Token)。读者请注意,为了便于协议的描述,这里只是在逻辑上把AS与RS区分开来;在物理上,AS与RS的功能可以由同一个服务器来提供服务。
    Read more »

在墙里的同学们不难发现,现在除了百度云以外,国内几乎没有什么公开的云盘服务了,有时我们想在自己的不同设备之间、或者给客户共享点资料非常困难,试想一下如果能有自己私有云存储,并且能支持自动同步本地数据还能轻松与他人共享,是件多面嗨皮的事。本文介绍一下如何利用华为云,基于Docker+Seafile搭建私人云存储。

开通华为云服务

工欲善其事,必先利其器。如何购买华为云,这里就不赘述了,详见官网介绍,总之乖乖按照官方指引轻松几步就搞定。笔者双11把手打折了,索性只买了1C1G的弹性云服务器(首月只要30+元),预装了Centos7.2操作系统。通过“管理控制台”进入弹性云服务器界面,可以远程登录主机,如下图所示。
20171114225111.png

Read more »