编程之路

  • home
  • article
  • class
  • label
  • utils

  • 搜索
aop 边缘计算 框架 物联网 敏捷开发 团队 压力测试 Markdown 学习方法 学习 产品 规范 日志 微服务 壁纸 开发平台 Java 全栈 前端 开发规范 MQTT CentOS 镜像站 IntelliJ IDEA FreeMarker UML 计算机 软件 Tomcat Netty Web Service Docker Dubbo Kafka NoSQL Redis 消息队列 RocketMQ RabbitMQ ActiveMQ 分布式事务 Spring 队列 Java 高级 GC JVM HTTP 网络安全 算法 设计模式 Spring Cloud Web SpringMVC 线程池 并发 锁🔒 多线程 Git Java 集合 Java 基础 MyBatis 数据库 MySQL Java 基础面试题 Java Nginx Linux Spring Boot

介绍一个"牛逼闪闪"开源库:ja-netfilter(IntelliJ IDEA )

发表于 2021-12-14 | 分类于 Java | 0 | 阅读次数 1600

原文 https://zhile.io/2021/11/29/ja-netfilter-javaagent-lib.html

上来先说点题外话,很多人最新私信我说我的开源项目IDE Eval Resetter不好用了。我就问他为什么不好用了,不好编译了吗?他说不是,是不能在IDE上重置了。我心说,这是个学习研究项目,重在学习插件写法,不能用也实在属于正常。于是我去测试了一下,得出了个结论:2021.2.2及以下版本很好用;2021.3以下(不含)堪堪能用,需要配合一些手法;2021.3版本开始正式失效,你可以卸载这个插件了!

所以没错,IDE Eval Resetter这个项目我已经弃坑,因为我觉得我插件已经写得很好了(手动狗头,以下很多用词默认手动加了狗头),得玩点其他好玩的东西。

这次要来玩个正经的、通用的、高大上的东西。

0x0. 项目背景

首先还是基于上述内容。

我们日常使用的软件中有很多有意或无意被加入网络访问的代码。有些并非恶意,有些则是。
并非恶意的像一些软件的在线激活验证,如dbeaver、smartgit等。
恶意的像有些软件本身就有盗取用户隐私数据的情况,有些软件则是被一些别有用心的人二次加工放入偷取用户数据的代码。

我们通常会使用防火墙来阻断这些软件的恶意访问。但防火墙也不是万能的,比如:跨平台问题、https下无法精准阻断某个url访问、部分防火墙不能阻断dns访问。
于是就有了我今天开源的这个项目:通用的、针对java程序的、灵活的、精准基于规则的、基于AOP思想的牛逼哄哄防火墙(无数狗头):ja-netfilter!

0x1. 如何安装

1). 下载安装:

  • 直接到项目仓库的 Releases 页面下载我打包好的文件包。

  • 按照项目README.md所写的方式来配置-javaagent参数。某些软件像dbeaver和smartgit等软件都支持直接编辑配置文件来配置,你可以参考我之前写的agent帮助文件来配置,这里不赘述。

  • 编辑janf_config.txt配置文件,配置希望阻断的规则。具体见下面的配置文件部分。

2). 编译安装:

  • 直接到项目仓库页面下载源文件,编译出目标jar文件即可。
  • 同下载安装部分。

0x2. 如何使用

  • 按照上述安装配置好后直接启动目标程序即可。
  • 你甚至能跟你的tomcat或jetty一起使用,来防止你项目依赖包中的一些恶意请求。

0x3. 如何更新

  • 关注上述的开源项目即可获取最新的代码和编译好的包。

0x4. 配置文件

  • 项目的README.md中讲了很多可以放置配置文件的地方,按照从上到下的优先级来的。找到一个就会读取,不会再往下找。
  • 我建议把janf_config.txt文件跟你ja-netfilter.jar放在同一个目录那种。这样会自动读取,不必再配置janf_config.txt的位置。
  • 至于配置文件的编写,项目帮助文档中已经写出,这里不再重复说明了。只是简单列举几个例子:
# DBEaver 阻断激活验证的 janf_config.txt 配置文件

[URL]
PREFIX,https://dbeaver.com/lmp/checkLicense
# SmartGit 的 janf_config.txt 配置文件

[URL]
PREFIX,https://store.smartgit.com/check
# jb 的 janf_config.txt 配置文件

[DNS]
EQUAL,jetbrains.com

[URL]
PREFIX,https://account.jetbrains.com/lservice/rpc/validateKey.action

0x5. 开源信息

  • 插件是学习研究项目,源代码是开放的。源码仓库地址:ja-netfilter。
  • 这是个通用的软件包,配置文件灵活自由,请不要过度想象。
  • 请不要试图结合 IDE Eval Resetter 一文中所说热心大佬的key来使用本项目。赶快入正!赶快入正!赶快入正!
  • 如果你有更好的想法,欢迎给我提Pull Request来共同研究完善。
  • 插件源码使用:GPL-3.0开源协议发布。
  • 插件使用PHP编写,毕竟PHP是世界上最好的编程语言!

0x6. 支持的产品

  • 本防火墙基于javaagent,所以目前只有基于java的程序能够使用。更通用的防火墙,等我学习更多知识。

0x7. 插件机制

  • 新版本ja-netfilter已经支持插件机制,各位可以给它开发各种各样有趣的插件了。
  • 插件开发请见这个脚手架项目。
  • 插件丢进ja-netfilter.jar所在的plugins子目录即可加载。
  • 我听说已经有人为它开发了一个FineAgent-For-JANF.jar插件???

下面是国际惯例:

本项目只做个人学习研究之用,不得用于商业用途!

# IntelliJ IDEA
NGINX 完全手册
Docker 入门教程 - 2021 最新版
  • 文章目录
  • 站点概览
Adrian

Adrian

曙光在头上,不抬起头,便永远只能看见物质的闪光。

119 日志
11 分类
67 标签
RSS
Creative Commons
Links
  • 美团技术团队
  • 阮一峰
  • 程序猿DD
  • SpringBoot 中文社区
  • 在线文档
  • Bean Searcher
  • OkHttps
  • Grails
  • Sa-Token
  • 程序员的进击之路
  • bugstack 虫洞栈
  • Java 全栈知识体系
  • Gobrs-Async
  • 查询网
  • 微信开放社区
  • 物联网技术指南
  • emqx
  • 看云
  • 深圳核酸检测点查询
  • Hutool
  • Spring
  • V2EX
  • v-charts
  • Vert.x 官方文档
  • Vert.x 官方文档中文翻译
  • 极客时间
  • Apache RocketMQ 开发者指南
  • 知了
  • 阿里云知行动手实验室
  • Learn Git Branching
  • Spring Boot 教程
  • 未读代码
  • 如梦技术
  • jpom
  • Cubic
  • Easy-Es
  • bing-wallpaper
  • solon
  • LuatOS
  • ThingsBoard
  • Linux 中国◆开源社区
  • Apache Dubbo
  • Jenkins
  • 技术文章摘抄
  • VueJS
  • MapStruct
  • elasticsearch 中文社区
  • Apollo(阿波罗)
  • TiKV文档
  • Chrome插件分享
  • 一步步搭建物联网系统(教你设计物联网系统)
  • 全栈增长工程师指南
  • 程序员的自我修养
  • Pro Git(中文版)
  • 学习 Web 开发
  • 极客教程
  • PingCAP 文档中心
  • 酷壳
  • Refactoring Guru 网站
  • 学习 Java 语言
  • smart-doc
  • mybatis-plus
  • 字母哥博客
0%
© 2023 Adrian
由 Halo 强力驱动
|
主题 - NexT.Gemini v5.1.4