freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

jxwaf性能测试报告
陌度 2020-08-13 20:27:35 347436
所属地 广东省

你是否还在为自己一往无前而感到害怕?你是否还在大白天下而感到恐惧呢?不用怕不用怕!!!套上jxwaf,你就会感到丝滑柔顺,薄如蝉翼,给你的感觉就是没有套上去,你以为你没有用,其实你在用的这种恍恍惚惚的情绪将会围绕你的身后,给你无穷无尽的快乐。jxwaf就是这么好!!!

测试准备

测试架构

现在分别对三套架构进行压测对比,看看性能损耗是多少:

1、nginx-》bwapp

2、jxwaf-》nginx-》bwapp

3、jxwaf-》bwapp

测试环境

bwapp可以使用dockcer进行部署,并且对外访问是8888端口。

docker run -it -p 8888:80  docker.io/moeinfatehi/bwapp

安装完成之后,在浏览器打开http://IP:8888/install.php,点击here进行初始化安装。

nginx的话,直接反向代理到bwapp(127.0.0.1:8888)

server {
        listen       80 default_server;
        server_name  abc.test.com;
        root         /usr/share/nginx/html;

        include /etc/nginx/default.d/*.conf;

        location / {
        proxy_pass http://127.0.0.1:8888;
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

jxwaf的安装部署可以参考这篇文章:https://www.freebuf.com/articles/es/242689.html

也就是把nginx的端口改成除80之外,jxwaf反向到nginx的端口上面,配置好域名指向即可。

测试脚本

Locust 是一个开源负载测试工具。使用 Python 代码定义用户行为,也可以仿真百万个用户。

我这边使用的域名是abc.test.com,自己根据自己的需要进行修改。我根据bwapp的接口定义了四个行为,登录、查询、设置以及注销

from locust import TaskSet, HttpLocust, task
from locust.clients import HttpSession


class WafTask(TaskSet):
    host = 'http://abc.test.com'
    session = None

    def on_start(self):
        payload = "login=bee&password=bug&security_level=0&form=submit"
        login_uri = "/login.php"

        self.session = HttpSession(self.host)

        response = self.session.post(url=self.host + login_uri, data=payload)

        print("LOGIN RESULT:", response.status_code)

    def on_stop(self):
        logout_uri = "/logout.php"
        self.session = HttpSession(self.host)
        response = self.session.get(url=self.host + logout_uri)
        print("LOGOUT RESULT:", response.status_code)
    @task
    def get_list(self):

        uri = "/portal.php"
        payload = "bug=2&form=submit"
        response = self.session.post(uri, data=payload.encode('utf-8'))

        print('查询结果 :', response.status_code)
        return response

    @task
    def set_level(self):

        uri = "/security_level_set.php"
        payload = "security_level=0&form=submit"

        response = self.session.post(uri, data=payload.encode('utf-8'))

        print('查询结果 :', response.status_code)
        return response


class BasicHttp(HttpLocust):
    task_set = WafTask
    min_wait = 5000
    max_wait = 9000
    host = 'http://abc.test.com'

单机模式运行

locust -f yace.py --host=

分布式运行

master

locust -f yace.py --host= --master

slave

import os
for i in range(1,80):
  os.system("cd /opt/ && locust -f yace.py  --host= --slave  > /tmp/"+str(i)+" 2>&1 & ")

之后访问 http://*:8089。可以看到我的已经启动了79个slave

性能测试数据

接下来会贴上二种测试指标,一种是三种架构从1k用户并发到1w用户并发的数据;另一种则是在7000这一个用户并发内(正常访问最高峰)测试三次,看看差异性。每次测试的时间为五分钟,其中咱们关注的Average response time(平均响应时间)和Requests/s(QPS)这两个指标,核心的数据,已经标黑处理。

指标一

先上图,再上表格数据。

平局响应时间,可以看到jxwaf一直处于低位,说明处理速度比nginx还快;并且如果后面有nginx的话,jxwaf传输到nginx那里,会对性能有所损耗。

QPS,jxwaf的QPS处于领先地位,很奇怪的是在nginx+jxwaf这种架构下,其QPS随着并发逐渐缓慢上升(笑哭不得)

1、nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000026038138135140133.02
GET/logout.php100001201143818840133.02
POST/portal.php2348601929131705401370.81
POST/security_level_set.php2345501928131688401370.72
NoneAggregated48941019371317054013147.56
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php2000036082917425740134.86
GET/logout.php200001301322322140134.86
POST/portal.php58010942037641724006140.91
POST/security_level_set.php58103802037645684007141.13
NoneAggregated1201131742052645684007291.76
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php30000620120913713940138.51
GET/logout.php3000013013618120240138.51
POST/portal.php74946021501472844013212.61
POST/security_level_set.php74233021511474654013210.59
NoneAggregated155179022751374654013440.22
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php4000211001618167467401211.97
GET/logout.php40000180199193214401311.97
POST/portal.php92655325701589954012277.22
POST/security_level_set.php93488225711489714012279.71
NoneAggregated1941437251051489954012580.86
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php500004909831415146401316.54
GET/logout.php50000150316197621401316.54
POST/portal.php99798015036418152564013330.23
POST/security_level_set.php99900015036517153504013330.57
NoneAggregated209698015037814153504013693.89
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php6000059013181931267401321.37
GET/logout.php60000130220203410401321.37
POST/portal.php110134012038616172504013392.17
POST/security_level_set.php110236012038816175094013392.53
NoneAggregated232370013040716312674013827.43
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php7000074016332031768401319.58
GET/logout.php70000180375198415401319.58
POST/portal.php1448752630116916347434012405.19
POST/security_level_set.php1451632630117816347464012406
NoneAggregated3040384610116616347464012850.34
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php80009073009635661236399813.64
GET/logout.php8000928010891967552401213.64
POST/portal.php213867522180032086921054012364.57
POST/security_level_set.php212682484180031987933054012362.55
NoneAggregated4425491105180032816933054011754.39
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php900073130034581862334401017.82
GET/logout.php90001146017152063893401217.82
POST/portal.php16956015392500478940956624010335.64
POST/security_level_set.php16909614812500477039957054010334.72
NoneAggregated35665631042400466918957054010705.99
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php10000233170055181563898400515.5
GET/logout.php100004151022252267430401115.5
POST/portal.php209533397830006424331155564006324.71
POST/security_level_set.php210151400530006423341052444006325.67
NoneAggregated439684825729006308151155564006681.37

2、jxwaf-》nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000019047840307540132.79
GET/logout.php100001201162519340132.79
POST/portal.php2534902232163179401370.74
POST/security_level_set.php2543002233163035401370.97
NoneAggregated52779023431631794013147.29
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php2000038089630706840137.49
GET/logout.php200001601692734840137.49
POST/portal.php37598024541670494013140.76
POST/security_level_set.php37108024511748254013138.93
NoneAggregated78706024771670684013294.66
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php300011200189825758840127.38
GET/logout.php3000020021825143540137.38
POST/portal.php848430551222083054013208.77
POST/security_level_set.php844391551222291754012207.77
NoneAggregated1752822571542091754012431.31
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php40000800921164363401310.4
GET/logout.php40000220314264700401310.4
POST/portal.php10077102804572494744013261.97
POST/security_level_set.php10084802804562489714013262.17
NoneAggregated20961902904621694744013544.93
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php5000285013421617020401212.39
GET/logout.php50000260491249176401312.39
POST/portal.php1213130620101024315594013300.73
POST/security_level_set.php1210771620101023362744012300.14
NoneAggregated2523903610100616362744012625.66
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php60001140021822161522401213.96
GET/logout.php60000290702249180401313.96
POST/portal.php123083552000277664704184011286.28
POST/security_level_set.php123278622000279550774894011286.74
NoneAggregated2583611181900272321774894011600.93
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70000110015591811575401314.58
GET/logout.php7000054012192823604401314.58
POST/portal.php143104822700356551719284011298.12
POST/security_level_set.php143647732700356033692044011299.26
NoneAggregated3007511552700346218719284011626.55
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php80009140024111862864400913.19
GET/logout.php8000679022682464687401213.19
POST/portal.php1732434953500511835967054007285.55
POST/security_level_set.php17302847435005088301226874007285.19
NoneAggregated36227198434004981181226874007597.11
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php900054230052992163928400214.38
GET/logout.php9000374022022594922401214.38
POST/portal.php18974853842005749411228024006303.21
POST/security_level_set.php19042651642005745431000404007304.29
NoneAggregated398174111141005657211228024006636.26
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000063190046202564665399715.06
GET/logout.php100000100022222764299401315.06
POST/portal.php2193271255000573645724704011330.37
POST/security_level_set.php218455965000571739737124012329.05
NoneAggregated4577822844900562625737124011689.55

3、jxwaf-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php1000014038218110340132.72
GET/logout.php10000100992816640132.72
POST/portal.php2670401925121208401372.58
POST/security_level_set.php2595601925121358401370.54
NoneAggregated54660019331213584013148.56
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php2000023078415425940135.36
GET/logout.php200001201142520540135.36
POST/portal.php53059020381443914013142.08
POST/security_level_set.php53062020381442684013142.09
NoneAggregated110121020531443914013294.89
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php3000033098716708440138.6
GET/logout.php3000013013220119340138.6
POST/portal.php73954021481472184013212
POST/security_level_set.php73802021471472254013211.56
NoneAggregated153756021681472254013440.76
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php400004901379197454401310.47
GET/logout.php40000130186203883401310.47
POST/portal.php106566021601389764013278.91
POST/security_level_set.php105993021611386374013277.41
NoneAggregated220559021871389764013577.25
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php50006140027112815308400812.87
GET/logout.php50000170219167195401312.87
POST/portal.php13228514412415163284012340.38
POST/security_level_set.php13245104412616163744013340.8
NoneAggregated27473674517415163744012706.91
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php6000044012421415080401315.67
GET/logout.php60000130162182528401315.67
POST/portal.php15644413019614162994012408.66
POST/security_level_set.php15661103019414161784013409.09
NoneAggregated32505513121414162994012849.09
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70002110023311916434401217.08
GET/logout.php700002004331716727401317.08
POST/portal.php178539034069218228654013435.56
POST/security_level_set.php179589034069418313504013438.13
NoneAggregated372128234071917313504012907.85
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php800020160043871975299400417.25
GET/logout.php800003909181963517401317.25
POST/portal.php172542331600290133928794012372.07
POST/security_level_set.php1723102716002911331201114012371.57
NoneAggregated3608528016002895191201114012778.15
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php90004160059351875659401118.28
GET/logout.php900002405291560158401318.28
POST/portal.php189938151700263212789444012385.8
POST/security_level_set.php189724717002630131252764012385.37
NoneAggregated3976622617002659121252764012807.73
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php100002130040251562828401217.3
GET/logout.php10000038011242163482401317.3
POST/portal.php2509152423003402281232464012434.16
POST/security_level_set.php2508572723003401281220644012434.06
NoneAggregated5217725322003370151232464012902.82

指标二

平均响应时间,以承受最高7K用户并发重复测试三次,可以看到排除最高的第三次,可以看到jxwaf处理的速度更加快。

QPS,以承受最高7K用户并发重复测试三次,可以看到jxwaf的QPS是最高的。

1、nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php7000173015221433237401217.21
GET/logout.php70000220463207428401317.21
POST/portal.php1615182750142417360534012397.04
POST/security_level_set.php1616173750142718480814012397.29
NoneAggregated3371356730140714480814012828.74
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70003110022422031662401217.09
GET/logout.php700001904602210739401317.09
POST/portal.php1615467980151620638134012394.43
POST/security_level_set.php16108781000151319612104012393.31
NoneAggregated33663318940150719638134012821.93
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70000150021282432230401316.61
GET/logout.php70000330712259720401316.61
POST/portal.php14583432000237536347034012345.94
POST/security_level_set.php14627542000236743333334012346.99
NoneAggregated30610971900232724347034012726.14

2、jxwaf-》nginx-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php700010150040633652552401214.24
GET/logout.php7000049013032761074401314.24
POST/portal.php169133721700228449773444012344.02
POST/security_level_set.php168705701700227952973894012343.14
NoneAggregated3518381521700229827973894012715.64
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70003160030832360676401214.06
GET/logout.php7000255013602561963401214.06
POST/portal.php159543352300293438717344012320.35
POST/security_level_set.php159235352300293144714214012319.73
NoneAggregated332778752200290223717344012668.19
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70000150021282432230401316.61
GET/logout.php70000330712259720401316.61
POST/portal.php14583432000237536347034012345.94
POST/security_level_set.php14627542000236743333334012346.99
NoneAggregated30610971900232724347034012726.14

3、jxwaf-》bwapp

TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php700016160041342161667400515.64
GET/logout.php700003107522162237401315.64
POST/portal.php1524061614002493191211344012340.61
POST/security_level_set.php1528202414002482201207574012341.54
NoneAggregated3192265614002485191211344012713.44
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php70004110021691715932401117.52
GET/logout.php70000210344226047401317.52
POST/portal.php176717029061515189804013442.29
POST/security_level_set.php176638029061114311104013442.09
NoneAggregated367355429063814311104012919.42
TypeName# requests# failuresMedian response timeAverage response timeMin response timeMax response timeAverage Content SizeRequests/s
POST/login.php7000089019402215870401316.9
GET/logout.php700002504101832051401316.9
POST/portal.php17014922540111915755514012410.81
POST/security_level_set.php17066215540111715763324012412.05
NoneAggregated35481137530112015763324012856.67

想要excel文档的话,关注并且私信!!

# 企业安全 # JXWAF
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 陌度 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
陌度 LV.4
https://github.com/yingshang/CybersecurityNote_cn
  • 89 文章数
  • 145 关注者
IAST实践落地总结
2024-02-02
PowerShell 搭建AD域渗透环境
2023-02-08
利用洞态做开源组件的安全治理
2022-01-14
文章目录