Browse Source

Excluded HTTP 3XX from analysis

Loweel 4 years ago
parent
commit
e6b823e1ec
2 changed files with 22 additions and 8 deletions
  1. 3 1
      blacklist.txt
  2. 19 7
      classifier.go

+ 3 - 1
blacklist.txt

@@ -1,4 +1,6 @@
 penis
 wallet
-
+/.well-known/host-meta
+/.well-known/host-meta/
+/.well-known/nodeinfo
 

+ 19 - 7
classifier.go

@@ -18,7 +18,7 @@ func init() {
 
 	var expressions = []string{
 		`([ ]([A-Za-z0-9-_]{4,}\.)+\w+)`,                   // domain name
-		`([ ]/[A-Za-z0-9-_/.]{3,}[ ])`,                     // URI path (also partial)
+		`([ ]/[A-Za-z0-9-_/.]{4,}[ ])`,                     // URI path (also partial)
 		`[[:alpha:]]{4,32}`,                                // alpha digit token
 		`([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})`, // IP address
 		`([0-9a-fA-F]{8}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{4}\-[0-9a-fA-F]{12})`, // UUID
@@ -35,9 +35,9 @@ func passAndLearn(resp *http.Response) error {
 	req := ProxyFlow.request
 
 	switch {
-	case resp.StatusCode == 401:
+	case isAuth(resp):
 		log.Println("401: We don't want to store credentials")
-	case resp.StatusCode > 399:
+	case IsError(resp):
 		buf := bytes.NewBufferString(BlockMessage)
 		resp.Body = ioutil.NopCloser(buf)
 		resp.Status = "403 Forbidden"
@@ -47,7 +47,7 @@ func passAndLearn(resp *http.Response) error {
 		log.Println("Filing inside bad class")
 		feedRequest(req, "BAD")
 		ControPlane.StatsTokens <- "DOWNGRADE"
-	default:
+	case isSuccess(resp):
 		log.Println("Filing inside Good Class: ", resp.StatusCode)
 		feedRequest(req, "GOOD")
 	}
@@ -69,12 +69,12 @@ func blockAndlearn(resp *http.Response) error {
 	resp.Header.Set("Content-Encoding", "none")
 
 	switch {
-	case resp.StatusCode == 401:
+	case isAuth(resp):
 		log.Println("401: We don't want to store credentials")
-	case resp.StatusCode > 399:
+	case IsError(resp):
 		log.Println("Filing inside bad class")
 		feedRequest(req, "BAD")
-	default:
+	case isSuccess(resp):
 		log.Println("Filing inside Good Class: ", resp.StatusCode)
 		ControPlane.StatsTokens <- "UPGRADED"
 		feedRequest(req, "GOOD")
@@ -155,3 +155,15 @@ func Unique(slice []string) []string {
 	}
 	return uniqSlice
 }
+
+func isSuccess(resp *http.Response) bool {
+	return resp.StatusCode <= 299
+}
+
+func isAuth(resp *http.Response) bool {
+	return resp.StatusCode == 401
+}
+
+func IsError(resp *http.Response) bool {
+	return resp.StatusCode >= 400
+}