亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

如何劫持Java應用的HTTP請求

瀏覽:10日期:2022-08-22 13:56:19

背景

全鏈路追蹤中,針對部分特殊的流量,希望將它引導到特定服務上(這個特定服務不在正常請求的鏈路上)——問題可以被抽象為解決進程間通信過程中目標進程的選擇。

進程間通信方式很多,本篇只關注 Java 進程間套接字通信下 HTTP 形式的請求劫持,引導特定流量到特定進程。

解決方案

可行的處理方案繁多。自頂向下從應用、框架、JVM、Container Runtime、System Call、網絡協議棧等級別,均可著手解決。侵入性最強的操作就是要求所有業務應用都主動實現 HTTP 請求分流邏輯;次一級是提供二方庫供業務應用主動集成;或者從系統層面進行改造,基于改寫系統調用對請求進行劫持。

回顧兩年前的所學,JVM TI 為劫持 HTTP 請求提供了一個全新的解決思路。通過 Agent 改寫應用啟動時加載的類的字節碼,劫持類的實例并完成目標功能。

由于 Java 項目間調用大量的使用了 Apache 的 http-client 庫,改寫變得相當簡單。識別流量,并對特定流量改寫請求的 Host 即可。

Demo

由于 http-client 對所有請求目標都統一由 org.apache.http.HttpHost 維護,控制變得極為簡單。只需在 HttpHost 實例化時,改寫類的構造方法,即完成了對目標的劫持工作(下例中強制將所有請求指向 163.com)

public class Agent implements ClassFileTransformer { public static void premain(String args, Instrumentation instrumentation) { instrumentation.addTransformer(new Agent()); } @Override public byte[] transform(ClassLoader loader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classfileBuffer) throws IllegalClassFormatException { if ('org/apache/http/HttpHost'.equals(className)) { ClassPool pool = ClassPool.getDefault(); try {CtClass httpHost = pool.get('org.apache.http.HttpHost');CtClass string = pool.get('java.lang.String');CtConstructor constructor = httpHost.getDeclaredConstructor(new CtClass[]{string, CtClass.intType, string});constructor.insertBefore('hostname = 'www.163.com';');byte[] bytes = httpHost.toBytecode();FileOutputStream fos = new FileOutputStream('/Users/fangfeng/a.class');fos.write(bytes);return bytes; } catch(NotFoundException | CannotCompileException | IOException e){e.printStackTrace(); } } return classfileBuffer; }}

將整個項目打包為 agent.jar 的過程不做太多介紹,詳見 ffutop/http-client-plugin

針對需要劫持的項目,在啟動參數中增加 -javaagent:${PATH_TO}/http-client-plugin.jar

以上就是如何劫持Java應用的HTTP請求的詳細內容,更多關于劫持Java應用的HTTP請求的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: 免费啪| 色综合小说久久综合图片 | 黄色1级片 | 免费永久在线观看黄网 | 精品一成人岛国片在线观看 | 又黄又爽又猛午夜性色播在线播放 | 欧美日韩一区二区三区四区在线观看 | 亚洲一区在线免费 | 亚洲精品专区一区二区三区 | 国产成人一区二区三区精品久久 | 久久99精品久久久久子伦小说 | 我想看黄色一级片 | 日本aaaa特级毛片 | 一级一级一级一级毛片 | 久久久四虎成人永久免费网站 | 日韩精品一区二区三区四区 | 全黄一级裸片视频免费 | 久久精品国产主播一区二区 | 国产91精品新入口 | 欧美一区二区三区免费不卡 | 国产人成午夜免费噼啪视频 | 午夜伦情电午夜伦情影院 | 国产区香蕉精品系列在线观看不卡 | 手机国产精品一区二区 | 国产亚洲视频网站 | 亚洲精品视频久久久 | 全免费一级毛片在线播放 | 欧洲成人爽视频在线观看 | 亚洲欧美视频一区 | 国产一级爱做片免费观看 | 亚洲第一区视频 | 热久久影院 | 成人免费淫片在线费观看 | 久草久热 | 免费观看在线永久免费xx视频 | 国产真实女人一级毛片 | 一级生活黄色片 | 伊人久久伊人 | 欧美艳星性videose精品 | 日韩在线一 | 激情丝袜欧美专区在线观看 |