原创

Web 防火墙的构思

本文字数:

862

,大约阅读2分钟

最近有一个不成熟的想法,经过简单的测试应该可以实现,但是实现的效果并不好,感觉还需要提高一些内在的能力。

一、端口复用

在使用 Socket 编程时有一个很不错的功能就是端口复用,最早了解端口复用是在接触木马的时候学习到的,它可以通过端口复用来隐藏木马的端口,在隐藏端口的同时可以嗅探、截获、甚至篡改和截断发往原本端口上的数据。不过端口复用不单单是用在恶意程序的开发上,后来了解到端口复用不但可以用在恶意程序的开发上,还可以用在服务器开发的优化上,真的很强大。

二、Web 防火墙

既然端口复用可以绑定到同一个端口上,那么自己写一个端口复用的程序绑定到 Nginx 或 Apache 等服务器上,那么是不是就可以在 Nginx 或 Apache 之前拿到 HTTP 的请求头呢?为了验证这个想法,我写了一个 Demo 进行测试,也验证了自己的想法的确是可以的。Web 防火墙的大致示意图如下:

浏览器直接访问端口复用的 Nginx 的代理,然后由端口复用的 Nginx 的代理去和 Nginx 服务器建立连接,这样在整个代理的部分就可以设置很多规则来过滤有恶意的 HTTP 请求了。

三、补充

其实思来想去,这种实现也许效率不高,还可以使用其他的方式进行实现,比如还可以使用 HOOK、底层的过滤驱动,或者一些入侵检测或防火墙的库进行开发。其实有了想法我应该先去网上找找是否有相应的实现,或者是否有人已经否定了这种想法。而且我觉得 Nginx 本身应该是具备相应的功能的,毕竟我对 Nginx 并不熟悉,具体行不行也不清楚。

信息安全
Win32/64
安全工具开发
Socket 编程
想法
  • 作者:Netor0x86(联系作者)
  • 发表时间:2019-12-03 23:51
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 公众号转载:请在文末添加作者公众号二维码
  • 评论