ShareWAF是支持二次开发的动态防御WAF(Web应用防火墙)。可进行很核心、很深度的功能再开发。

文本展示两实例,实现:网页图片隐藏、网页源码LZW算法压缩加密。

网页图片隐藏

图片隐藏,是通过修改网页中的img元素,清除其src内容达成。

实现时,通过使用ShareWAF接口的modify_res_body函数,修改网页代码,插入JS代码块实现。

打开接口文件:developer.js,插入以下代码:

ShareWAF二次开发实例:图片隐藏、源码压缩_第1张图片

保存代码,启动ShareWAF:

ShareWAF二次开发实例:图片隐藏、源码压缩_第2张图片

访问被保护网站,图片隐藏效果如下:

ShareWAF二次开发实例:图片隐藏、源码压缩_第3张图片

从网页代码中,也可以看到我们插入在网页中的代码:

ShareWAF二次开发实例:图片隐藏、源码压缩_第4张图片

网页源码LZW算法压缩加密

该功能,同样在modify_res_body函数中实现,核心代码分两部分:插入在网页中的LZW解压算法,和ShareWAF接口中的压缩操作。

代码如下:

ShareWAF二次开发实例:图片隐藏、源码压缩_第5张图片

注:插入到网页中的LZW解压功能代码,代码量较大,因此保存在外部文件中、使用require加载比较方便。

同样是保存并启动ShareWAF。

运行效果如下:

ShareWAF二次开发实例:图片隐藏、源码压缩_第6张图片

可见,网页展示正常,但查看源码可以看到:源码中是LZW压缩后的加密代码。

LZW加密,对于较大的网页可以起到压缩代码量的效果,同时也可以起到源码加密的功能。

由以上两例可见,ShareWAF的二次开发功能还是相当强大和自由的。而这里只是利用了其多个开发接口中的一个。使用其它接口,或多接口共用,可以实现很多我们自己想要的功能。