Java Agent的使用
最近集成Rapid7 的tcell 安全agent到我们的application。在report里面可以显示各个api end point的访问情况和返回情况,并且还能检测xss等数据。好奇他们是怎么做的,顺手查看了文档,发现其实挺简单。其实就是在运行java程序的时候 加入 javaagent的参数。不同的framework tcell提供了不同的agent,比如说Sprint,Dropwizard。
javaagent是通过修改bytecodes的方式修改运行程序的。这里有一篇很好的文章介绍java instrumentation的: https://www.baeldung.com/java-instrumentation .
通过javaagent还能做挺多的其他东西,比如说:
- 动态的添加log
https://lightrun.com/debugging-live-java-applications-with-lightrun/ - Jolokia is an agent converting JMX to http based REST end points.
https://jolokia.org/reference/html/agents.html#agents-jvm
后记:我以为Sentry也是通过javaagent实现的,看了之后发现不是。