ShareWAF是支持二次开发的动态防御WAF(Web应用防火墙)。可进行很核心、很深度的功能再开发。
文本展示两实例,实现:网页图片隐藏、网页源码LZW算法压缩加密。
网页图片隐藏
图片隐藏,是通过修改网页中的img元素,清除其src内容达成。
实现时,通过使用ShareWAF接口的modify_res_body函数,修改网页代码,插入JS代码块实现。
打开接口文件:developer.js,插入以下代码:
![a275b704e330cb751117fbfa12044223.png](https://i-blog.csdnimg.cn/blog_migrate/1d1f69c160fd000ab145bdf9c33c9370.jpeg)
保存代码,启动ShareWAF:
![a4c532dbcbce090dfa5762a00500fb75.png](https://i-blog.csdnimg.cn/blog_migrate/ae332af71baa3999fbdd968e16747d47.jpeg)
访问被保护网站,图片隐藏效果如下:
![c7a9771b7712574810c11294640ae731.png](https://i-blog.csdnimg.cn/blog_migrate/1ec599525f2feff9cb86512855b284a8.jpeg)
从网页代码中,也可以看到我们插入在网页中的代码:
![d4f1acc7e3fa46c00dc7fa20ec68ee32.png](https://i-blog.csdnimg.cn/blog_migrate/5d324627b29d05730ea86b79b1fe6c23.jpeg)
网页源码LZW算法压缩加密
该功能,同样在modify_res_body函数中实现,核心代码分两部分:插入在网页中的LZW解压算法,和ShareWAF接口中的压缩操作。
代码如下:
![78dfc614140c3973c004a20ce80e751f.png](https://i-blog.csdnimg.cn/blog_migrate/7c3494831681d0515792f8d5c792d270.jpeg)
注:插入到网页中的LZW解压功能代码,代码量较大,因此保存在外部文件中、使用require加载比较方便。
同样是保存并启动ShareWAF。
运行效果如下:
![9411cb814f514afcb5c633dd0144d9d4.png](https://i-blog.csdnimg.cn/blog_migrate/1b54106449ed01257e83ad2a9915d6bd.jpeg)
可见,网页展示正常,但查看源码可以看到:源码中是LZW压缩后的加密代码。
LZW加密,对于较大的网页可以起到压缩代码量的效果,同时也可以起到源码加密的功能。
由以上两例可见,ShareWAF的二次开发功能还是相当强大和自由的。而这里只是利用了其多个开发接口中的一个。使用其它接口,或多接口共用,可以实现很多我们自己想要的功能。