博客归档

谈谈 Wappalyzer 识别和欺骗

小柊 发表于 2022年04月22日 03时25分29秒

序、前言

前几周在网上冲浪,无意间在 RSS 里看到这么一篇文章《欺骗Wappalyzer插件指纹识别》。里面详细的介绍了 Wappalyzer 这款浏览器拓展的工作原理以及如何欺骗其结果。当时扫了一眼觉得这篇文章很有意思,可以拿来改造蜜罐,就在此基础上做了进一步的研究。

浏览内容

记 Nginx auth_request 指令中的小坑

小柊 发表于 2020年10月28日 01时58分38秒

序、背景

最近某个项目需要做系统平台的访问控制功能。具体说就是需要可以限制只允许指定的IP段访问系统Web页面,非指定的IP/IP段访问只能看到403的错误页。

这个需求在某种情况下倒也挺简单,Tornado的话,在RequestHandler的prepare阶段,检查一下客户端IP地址是否在IP段内,不在的话抛一个HTTPError(403);ASP.net core的话,注册一个AuthorizationFilter做IP检查即可。

问题在于笔者负责的项目是前后端分离的,后端这边只负责接受HTTP API的请求。前端资源直接交由Nginx负责响应。故即便在Web项目里做了访问IP检查也只能对API请求做访问限制。静态资源还是可以被自由访问。

如果需要对Nginx负责的前端资源也设置访问控制,就需要单独做一些设置了。

浏览内容

谈谈EF Core是怎么将内插字符串转为参数化SQL查询的

小柊 发表于 2019年07月22日 00时45分42秒

序、扯淡

不要问笔者这消失的五月和六月,笔者不想谈……Endless work Limited life……

然后还在考虑一个问题,以后博客还是像以前一样一月一水呢,还是好好研究点技术,不定期发表。但总觉得后者会导致笔者进入无限鸽的状态,还是算了。

 

在文章的开始,我需要先提三个名词:Entity Framework、SQL注入和字符串插值。

浏览内容

CentOS 7 关闭透明大页

小柊 发表于 2019年04月30日 23时34分19秒

序、扯淡

上个月的笔者还在博客里吐槽工作忙没空写干货,本以为四月会好些,结果鬼知道四月依旧是工作满满,不得不感叹笔者平时广积德,现在正被修来的“福报”簇拥着呢。

浏览内容

CentOS 7 Gnome桌面图标过大的问题

小柊 发表于 2019年03月31日 21时59分27秒

序、写在最前

非常抱歉三月份工作非常忙,外加整个人都提不起劲,所以没法写出有点质量的文章,只能这么水一篇。

 

一、背景

大概是17年年初还是什么时候的一次升级后,如果安装了Gnome桌面的CentOS 7桌面图标就会变的巨硕无比,大概就是这样的:

 

不过除了图标变大了,其他的倒没啥问题。所以很多时候就是凑合着用了。但对于我这样的强迫症而言,实在是看着不舒服。

浏览内容

C# 从byte[]里直接读取Structure

小柊 发表于 2019年02月28日 23时47分20秒

序、前言

emmmmm,首先这篇文章讲的不是用BinaryFormatter来进行结构体的二进制转换,说真的BinaryFormatter这个类其实现在的作用并不是特别大了,因为BinaryFormatter二进制序列化出来的结果只能用于.net平台,现在可能就用于如存入Redis这种情况下会在使用。

去年年尾的样子,我阅读学习某C++开发的程序源码时,发现作者用了一个很骚的操作直接将byte[]数组转为了结构体对象:

 

上面的data变量是一个指向unsigned char类型的指针,就只要一个简单的类型转换就可以将一堆unsigned char转换成想要的结构体,这着实有点让笔者有点羡慕。

后来,笔者想用C#开发一个流量分析程序,由于需要对IP报文进行仔细的特征提取,所以不能直接使用第三方数据包解析库(如:PacketDotNet)直接解析,会丢失部分特征,然而使用BinaryReader进行报文头解析的话,整个解析代码会写的丧心病狂的恶(e)心(xin),正在苦恼的时候,突然想起上面提到的那个骚操作时,笔者突然冒出了一个想法,C#里也支持结构体,那我能不能也像C++这样直接从字节序列中读取出结构体呢?

注:本文所有代码在.net Standard 2.0上测试通过。

浏览内容

C# 全局异常捕获(for .net Core)

小柊 发表于 2018年12月17日 23时42分04秒

序、背景

在16年,笔者曾在博客里写了一篇《C# 全局异常捕获》的文章,里面讲了一下如何在整个项目中捕获未处理的异常,只不过当时写的时候还是以.net Framework和Asp.net为目标写的。

然而这两年里整个.net的圈子发生了非常大的变化,比如16年刚发布的还不温不火的.net Core,终于在这两年间熊熊的燃烧起来,现在去Nuget上面看,这两年内更新过的项目,基本都提供了对.net Standard的支持,而曾经的.net Framework因为各种各样的历史包袱,开始显得有些力不从心,甚至在今年.net Framework第一次将被.net Standard甩下——.net Core3.0将首先支持.net Standard 2.1,而.net Framework 4.8则还会在.net Standard 2.0上停留(可以看微软的这篇博客《Announcing.NET Standard 2.1》)

今天半夜准备睡觉的时候,收到了一位朋友的留言,希望笔者能补充一下在.net Core下,全局异常捕获的方式。

 

所以今天决定赶一下,讲讲在新的.net Core平台下,如何进行全局异常捕获。

浏览内容

Docker容器端口映射后突然无法连接的问题排查

小柊 发表于 2018年11月05日 23时30分13秒

一、背景

一般需要对外提供服务的Docker容器,我们在启动时后使用-p命令将对外访问端口暴露给外部,例如启动Docker Registry,我们将5000端口映射出来供外部访问:

 

但最近碰到一个非常奇怪的情况:研发组里一个CentOS 7测试环境里部署有Docker Registry,并对外暴露了端口。启动容器后一段时间内都是可以正常工作的,但在不定时间间隔后,外部主机就会出现无法从仓库中拉取镜像的情况,提示TimeOut:

浏览内容

CentOS Nginx官方yum源

小柊 发表于 2018年10月10日 23时35分22秒

一、背景

不知道为什么,现在上网搜 CentOS 安装 nginx 的教程,很多文章都会告诉你先安装 epel 源,然后就可以用 yum 安装 nginx 了。

其实 nginx 在自己官网的文档中是提供了自己的官方yum源地址的,只不过不是特别明显就是了。

官网源和 epel 源提供的 nginx 里,我个人更偏向官方源。因为 epel 源是 Fedora 负责维护的,所以用 epel 源安装的 nginx 跟官方源或者直接编译安装的 nginx 在一些细节部分会有一些不同,比如 epel 源里的 nginx 装完之后默认的测试页是“Welcome to nginx on Fedora!”,另外在配置文件上面也有些许不同,反正用起来不是特别舒服。

浏览内容

CentOS7 源码编译Python 3

小柊 发表于 2018年09月05日 00时00分46秒

序、扯淡

之前一直把CentOS7源码编译安装Python 3的命令放在钉钉的石墨文档里,并不准备把这个当作一篇博客单独放出来的。但最近要源码编译Python 3的次数实在是太多了,而且每次打开石墨文档的速度实在是太——慢——了——(还不如我的博客快),所以决定把CentOS源码编译安装Python 3的命令放到博客里来,以后需要用的时候就直接翻博客算了。

 

注:本文在2019年4月30日被重新编辑

浏览内容