(a *assert.Assertion, t *testing.T, template *waf.WAF)
| 90 | } |
| 91 | |
| 92 | func testTemplate1010(a *assert.Assertion, t *testing.T, template *waf.WAF) { |
| 93 | for _, id := range []string{ |
| 94 | "<script", |
| 95 | "<script src=\"123.js\">", |
| 96 | "<script>alert(123)</script>", |
| 97 | "<link", |
| 98 | "<link>", |
| 99 | "1 onfocus='alert(document.cookie)'", |
| 100 | } { |
| 101 | req, err := http.NewRequest(http.MethodGet, "https://example.com/index.php?id="+id, nil) |
| 102 | if err != nil { |
| 103 | t.Fatal(err) |
| 104 | } |
| 105 | req.Header.Set("User-Agent", testUserAgent) |
| 106 | result, err := template.MatchRequest(requests.NewTestRequest(req), nil, firewallconfigs.ServerCaptchaTypeNone) |
| 107 | if err != nil { |
| 108 | t.Fatal(err) |
| 109 | } |
| 110 | a.IsNotNil(result.Set) |
| 111 | if result.Set != nil { |
| 112 | a.IsTrue(result.Set.Code == "1010") |
| 113 | } else { |
| 114 | t.Log("break at:", id) |
| 115 | } |
| 116 | } |
| 117 | |
| 118 | for _, id := range []string{ |
| 119 | "123", |
| 120 | "abc", |
| 121 | "<html></html>", |
| 122 | } { |
| 123 | req, err := http.NewRequest(http.MethodGet, "https://example.com/index.php?id="+url.QueryEscape(id), nil) |
| 124 | if err != nil { |
| 125 | t.Fatal(err) |
| 126 | } |
| 127 | req.Header.Set("User-Agent", testUserAgent) |
| 128 | result, err := template.MatchRequest(requests.NewTestRequest(req), nil, firewallconfigs.ServerCaptchaTypeNone) |
| 129 | if err != nil { |
| 130 | t.Fatal(err) |
| 131 | } |
| 132 | a.IsNil(result.Set) |
| 133 | if result.Set != nil { |
| 134 | a.IsTrue(result.Set.Code == "1010") |
| 135 | } |
| 136 | } |
| 137 | } |
| 138 | |
| 139 | func testTemplate2001(a *assert.Assertion, t *testing.T, template *waf.WAF) { |
| 140 | body := bytes.NewBuffer([]byte{}) |
no test coverage detected