做毕设, 防篡改 我想用 java 编写一个简单的代理, 拦截对运行在虚拟机上的 javaweb 服务器的请求, 然后验证请求的网页的完整性, 如果验证通过, 直接把请求转发给虚拟机, 然后把虚拟机的响应返回。 如果验证失败, 直接返回本地的缓存作为响应。
大概要用到什么技术, 如何实现呢, 求大佬指点。
1
6IbA2bj5ip3tK49j 2019-05-10 20:44:45 +08:00 via iPhone 1
Spring gateway 比较简单
|
2
mawerss1 2019-05-10 22:34:44 +08:00
netty ?
|
3
lhx2008 2019-05-10 22:38:13 +08:00 1
直接用 Spring MVC 屠龙刀,半天就写好了,不过难的是校验规则。当然要性能好的话,可以用 Spring WebFlux + WebClient,基于 Netty 的,不难,不过学习曲线有点陡峭。如果要极致性能,直接写 Netty。
|
4
wdlth 2019-05-10 22:48:56 +08:00 1
就是 API 网关吧,参考 Spring Cloud Gateway
|
5
Navee 2019-05-10 22:52:31 +08:00 1
可以参照 https://github.com/adamfisk/LittleProxy
即使是使用了 netty,性能也是惨不忍睹 |
7
Chinsung 2019-05-23 16:56:24 +08:00
你的问题描述就有点问题,拦截到虚拟机的请求,我的理解是要拦截发到 javaweb 监听的端口的请求吧?
你应该是想要在 javaweb 返回页面前通过代理来判断一下返回的页面是否被篡改,如果被篡改了的话就返回代理缓存的页面? 如果是的话,省事可以 spring cloud gateway 写个简单的拦截。 或者 netty 写个反向代理,netty 源码的 example 里就有例子,稍微改下就行 但是我感觉如果只是这个需求的话,拦截器和过滤器理论上都可以做,不需要代理。 |