From e12059c0aad69ae650bdfd7bd067671914c29e51 Mon Sep 17 00:00:00 2001 From: zhengchao Date: Wed, 3 Jul 2019 21:48:20 +0600 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8D=95=E5=85=83=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8BStringScan.StreamScanUTF8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/maat_json.json | 50 +- test/test_maatframe.cpp | 46 ++ test/testdata/jd.com.html | 968 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 1052 insertions(+), 12 deletions(-) create mode 100644 test/testdata/jd.com.html diff --git a/test/maat_json.json b/test/maat_json.json index 75ef9c1..ccbc070 100644 --- a/test/maat_json.json +++ b/test/maat_json.json @@ -555,7 +555,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "anything", + "user_region": "StringScan.UTF8EncodedURL", "is_valid": "yes", "groups": [ { @@ -580,7 +580,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "NOT-logic-test1", + "user_region": "NOTLogic.OneRegion", "is_valid": "yes", "groups": [ { @@ -621,7 +621,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "NOT-logic-test2", + "user_region": "NOTLogic.ScanNotAtLast", "is_valid": "yes", "groups": [ { @@ -662,7 +662,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "NOT-logic-test3", + "user_region": "NOTLogic.ScanNotIP", "is_valid": "yes", "groups": [ { @@ -692,7 +692,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "anything", + "user_region": "StringScan.Regex", "is_valid": "yes", "groups": [ { @@ -717,7 +717,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "anything", + "user_region": "StringScan.UTF8EncodedURL", "is_valid": "yes", "groups": [ { @@ -744,7 +744,7 @@ "compile_id": 148, "service": 0, "do_blacklist": 0, - "user_region": "APP_ID=100001;BEHAV_ID=100002", + "user_region": "StringScan.ExprPlusWithOffset", "groups": [ { "regions": [ @@ -770,7 +770,7 @@ "action": 1, "do_blacklist": 1, "do_log": 1, - "user_region": "anything", + "user_region": "StringScan.Regex", "is_valid": "yes", "groups": [ { @@ -796,7 +796,7 @@ "do_blacklist": 0, "do_log": 0, "effective_rage": 0, - "user_region": "0", + "user_region": "StringScan.BugReport20190325", "is_valid": "yes", "groups": [ { @@ -838,7 +838,7 @@ "do_blacklist": 0, "do_log": 0, "effective_rage": 0, - "user_region": "suffix_hit", + "user_region": "StringScan.PrefixAndSuffix", "is_valid": "yes", "groups": [ { @@ -865,7 +865,7 @@ "do_blacklist": 0, "do_log": 0, "effective_rage": 0, - "user_region": "prefix_hit", + "user_region": "StringScan.PrefixAndSuffix", "is_valid": "yes", "groups": [ { @@ -908,7 +908,7 @@ "do_blacklist": 0, "do_log": 0, "effective_rage": 0, - "user_region": "group_referer_group", + "user_region": "Policy.SubGroup", "is_valid": "yes", "groups": [ { @@ -1040,6 +1040,32 @@ ] } ] + }, + { + "compile_id": 157, + "service": 0, + "action": 0, + "do_blacklist": 0, + "do_log": 0, + "effective_rage": 0, + "user_region": "StringScan.StreamScanUTF8", + "is_valid": "yes", + "groups": [ + { + "regions": [ + { + "table_type": "expr", + "table_name": "TROJAN_PAYLOAD", + "table_content": { + "keywords": "我的订单", + "expr_type": "none", + "format": "none", + "match_method": "sub" + } + } + ] + } + ] } ], "plugin_table": [ diff --git a/test/test_maatframe.cpp b/test/test_maatframe.cpp index 63fae70..8b6871c 100644 --- a/test/test_maatframe.cpp +++ b/test/test_maatframe.cpp @@ -307,6 +307,7 @@ TEST(StringScan, BugReport20190325) EXPECT_EQ(result[0].config_id, 150); } +#define PrefixAndSuffixTest TEST(StringScan, PrefixAndSuffix) { int ret=0; @@ -1041,6 +1042,51 @@ TEST(StringScan, OffsetChunk1460) test_offset_str_scan_with_chunk(1460); return; } +#define StringScan_StreamScanUTF8 1 +TEST(StringScan, StreamScanUTF8) +{ + //Bug report: https://mantis.mesalab.cn/view.php?id=712 + int table_id=0,ret=0; + int read_size=0,pass_flag=0; + struct Maat_rule_t result[4]; + scan_status_t mid=NULL; + const char* table_name="TROJAN_PAYLOAD"; + const char* fn="./testdata/jd.com.html"; + FILE* fp=fopen(fn,"r"); + ASSERT_FALSE(fp==NULL); + + char scan_data[2048]; + table_id=Maat_table_register(g_feather,table_name); + ASSERT_GT(table_id, 0); + + + struct Maat_hit_detail_t *hit_detail=(struct Maat_hit_detail_t *)malloc(sizeof(struct Maat_hit_detail_t)*10); + stream_para_t sp=Maat_stream_scan_string_start(g_feather,table_id,0); + int detail_ret=0; + + ASSERT_FALSE(sp==NULL); + + while(0==feof(fp)) + { + read_size=fread(scan_data,1,sizeof(scan_data),fp); + ret=Maat_stream_scan_string_detail(&sp,CHARSET_NONE,scan_data,read_size + ,result,4,hit_detail,10 + ,&detail_ret,&mid); + if(ret>0) + { + pass_flag=1; + break; + } + } + EXPECT_EQ(pass_flag, 1); + EXPECT_EQ(result[0].config_id, 157); + + Maat_stream_scan_string_end(&sp); + free(hit_detail); + fclose(fp); + Maat_clean_status(&mid); + return; +} void accept_tags_entry_cb(int table_id,const char* table_line,void* u_para) { diff --git a/test/testdata/jd.com.html b/test/testdata/jd.com.html new file mode 100644 index 0000000..1650566 --- /dev/null +++ b/test/testdata/jd.com.html @@ -0,0 +1,968 @@ + + + + + 京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +
+
+
    +
  • +
+ + +
+
+ + + + +
+ HTC手机哪款好 + 双卡双待手机哪款好 + 8GB手机排行榜 + 联想天逸510s 台式机 + 海尔滚筒式洗衣机 + 网络赚钱 + 白酒 + 立白洗衣液 + 青少年牙刷 + 洗面奶 + 唐狮拼色 连衣裙 + 苹果手机 + 琵琶 + 女士鞋 + 实木沙发 + 索尼电视 + 卫浴品牌 + 奥克斯空调 + 百香果 + 索尼耳机 + 冰箱镶入墙里 + 康佳家电下乡冰箱 + 奥克斯(AUX)BCD-116AD + 三星三门 + 120升冰箱 + 容声冰箱销量 + 创维(Skyworth)定频冰箱 + 容升晶弘冰箱 + 奥马(Homa)风冷(无霜)定频冰箱 + KG23N1116W + 西门孑小型对开门 + 迷你冰箱50l + 256升冰箱 + HNBX多门风冷冰箱 + 长城冰箱 + 松下对开门电冰箱 + 德努希变频冰箱 + 冰箱双开门排名 + 冰鹭(BINGLU)BCD-78S + 三星冰箱285wmq +
+ + + + +
+ + + + + + + + + + + +