Example #1
0
        public void ClearSecure_ClearSecureInHtml_SecureInHtmlCleared()
        {
            // arrange
            var secureKey1 = "users";
            var secureKey2 = "pass";
            var locations  = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Rest, SecureLocationType.Query
            };

            var properties = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.RequestBody
            };
            var secureSettings1 = new SecureSettings(secureKey1, locations, properties);
            var secureSettings2 = new SecureSettings(secureKey2, locations, properties);

            var requestBody =
                "<!DOCTYPE HTML>" +
                "<html>" +
                "<head>" +
                "<meta charset=\"utf-8\">" +
                "<title>Тег LINK</title>" +
                "<link rel=\"stylesheet\" href=\"ie.css\">" +
                "<link rel=\"alternate\" type=\"application/rss+xml\"" +
                "title=\"Статьи с сайта htmlbook.ru\" href=\"http://htmlbook.ru/rss.xml\">" +
                "<link rel=\"shortcut icon\" href=\"http://test.com/users/max/info?pass=123456\">" +
                "</head>" +
                "<body>" +
                "<p>...</p>" +
                "</body>" +
                "</html>";

            var expectedResult =
                "<!DOCTYPE HTML>" +
                "<html>" +
                "<head>" +
                "<meta charset=\"utf-8\">" +
                "<title>Тег LINK</title>" +
                "<link rel=\"stylesheet\" href=\"ie.css\">" +
                "<link rel=\"alternate\" type=\"application/rss+xml\"" +
                "title=\"Статьи с сайта htmlbook.ru\" href=\"http://htmlbook.ru/rss.xml\">" +
                "<link rel=\"shortcut icon\" href=\"http://test.com/users/XXX/info?pass=XXXXXX\">" +
                "</head>" +
                "<body>" +
                "<p>...</p>" +
                "</body>" +
                "</html>";

            var urlCleaner = new SecureCleaner(new List <SecureSettings> {
                secureSettings1, secureSettings2
            });
            var httpResult = new HttpResult("", requestBody, "");

            // act
            var cleanedHttpResult = urlCleaner.CleanHttpResult(httpResult);

            // assert
            Assert.Equal(expectedResult, cleanedHttpResult.RequestBody);
        }
Example #2
0
        public void ClearSecure_ClearOneSecureInUrl_OneSecureInUrlStringParameterCleared()
        {
            // arrange
            var secureKey = "users";
            var locations = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Rest
            };

            var properties = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.Url
            };
            var secureSettings = new SecureSettings(secureKey, locations, properties);

            var urlCleaner = new SecureCleaner(new List <SecureSettings> {
                secureSettings
            });
            var httpResult     = new HttpResult("http://test.com/users/max/info?pass=123456", "", "");
            var expectedResult = "http://test.com/users/XXX/info?pass=123456";

            // act
            var cleanedHttpResult = urlCleaner.CleanHttpResult(httpResult);

            // assert
            Assert.Equal(expectedResult, cleanedHttpResult.Url);
        }
Example #3
0
        public void ClearSecure_SpecifyPropertyType_SecureFromNotSpecifieyPropertiesNotCleared()
        {
            // arrange
            var url = "http://test.com/users/max/info?pass=123456";

            var secureKey1 = "users";
            var secureKey2 = "pass";
            var locations  = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Rest, SecureLocationType.Query
            };

            var properties = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.Url, SecurePropertyType.ResponseBody
            };
            var secureSettings1 = new SecureSettings(secureKey1, locations, properties);
            var secureSettings2 = new SecureSettings(secureKey2, locations, properties);

            var urlCleaner = new SecureCleaner(new List <SecureSettings> {
                secureSettings1, secureSettings2
            });
            var httpResult     = new HttpResult(url, url, url);
            var expectedResult = "http://test.com/users/XXX/info?pass=XXXXXX";

            // act
            var cleanedHttpResult = urlCleaner.CleanHttpResult(httpResult);

            // assert
            Assert.Equal(expectedResult, cleanedHttpResult.Url);
            Assert.Equal(url, cleanedHttpResult.RequestBody);
            Assert.Equal(expectedResult, cleanedHttpResult.ResponseBody);
        }
Example #4
0
        public void SecureCleaner_CleanString_JSONResponceBody_OK()
        {
            //Arrange
            HttpResult httpReq = new HttpResult();

            httpReq.Url          = "http://google.com";
            httpReq.RequestBody  = "ok";
            httpReq.ResponseBody = "{\"order\":{\"name\":\"qwe\"," +
                                   "\"pass\":\"12qw\"}}";

            HttpResult httpResult = new HttpResult();

            httpResult.Url          = "http://google.com";
            httpResult.RequestBody  = "ok";
            httpResult.ResponseBody = "{\"order\":{\"name\":\"XXX\"," +
                                      "\"pass\":\"XXXX\"}}";

            //Act
            SecureCleaner secureCleaner = new SecureCleaner();

            httpReq = secureCleaner.CleanString(httpReq);

            //Assert
            Assert.True(httpResult == httpReq);
        }
Example #5
0
        public void SecureCleaner_CleanString_XMLRequestBody_OK()
        {
            //Arrange
            HttpResult httpReq = new HttpResult();

            httpReq.Url         = "http://google.com";
            httpReq.RequestBody = "<main>" +
                                  "<order><name>max</name><pass>qwe12</pass></order>" +
                                  "</main>";
            httpReq.ResponseBody = "ok";

            HttpResult httpResult = new HttpResult();

            httpResult.Url         = "http://google.com";
            httpResult.RequestBody = "<main>" +
                                     "<order><name>XXX</name><pass>XXXXX</pass></order>" +
                                     "</main>";
            httpResult.ResponseBody = "ok";

            //Act
            SecureCleaner secureCleaner = new SecureCleaner();

            httpReq = secureCleaner.CleanString(httpReq);

            //Assert
            Assert.True(httpResult == httpReq);
        }
Example #6
0
        public void ClearSecure_ClearHttpResultWithDifferentProperties_HttpResultCleared()
        {
            // arrange
            var url          = "http://test.com/users/max/info?pass=123456";
            var requestBody  = "http://test.com?user=max&pass=123456";
            var responseBody = "http://test.com?user=max&pass=123456";

            var expectedUrlResult    = "http://test.com/users/XXX/info?pass=XXXXXX";
            var expectedRequestBody  = "http://test.com?user=XXX&pass=XXXXXX";
            var expectedResponseBody = "http://test.com?user=XXX&pass=XXXXXX";

            var secureKey1 = "user";
            var locations1 = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Query
            };
            var properties1 = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.RequestBody, SecurePropertyType.ResponseBody
            };
            var secureSettings1 = new SecureSettings(secureKey1, locations1, properties1);

            var secureKey2 = "pass";
            var locations2 = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Query
            };
            var properties2 = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.Url, SecurePropertyType.RequestBody, SecurePropertyType.ResponseBody
            };
            var secureSettings2 = new SecureSettings(secureKey2, locations2, properties2);

            var secureKey3 = "users";
            var locations3 = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Rest
            };
            var properties3 = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.Url
            };
            var secureSettings3 = new SecureSettings(secureKey3, locations3, properties3);

            var urlCleaner = new SecureCleaner(new List <SecureSettings> {
                secureSettings1, secureSettings2, secureSettings3
            });
            var httpResult = new HttpResult(url, requestBody, responseBody);

            // act
            var cleanedHttpResult = urlCleaner.CleanHttpResult(httpResult);

            // assert
            Assert.Equal(expectedUrlResult, cleanedHttpResult.Url);
            Assert.Equal(expectedRequestBody, cleanedHttpResult.RequestBody);
            Assert.Equal(expectedResponseBody, cleanedHttpResult.ResponseBody);
        }
Example #7
0
        public void SecureCleaner_CleanString_RestUrlBody_OK()
        {
            //Arrange
            HttpResult httpReq = new HttpResult();

            httpReq.Url          = "http://test.com/users/max/info";
            httpReq.RequestBody  = "ok";
            httpReq.ResponseBody = "ok";

            HttpResult httpResult = new HttpResult();

            httpResult.Url          = "http://test.com/users/XXX/info";
            httpResult.RequestBody  = "ok";
            httpResult.ResponseBody = "ok";

            //Act
            SecureCleaner secureCleaner = new SecureCleaner();

            httpReq = secureCleaner.CleanString(httpReq);

            //Assert
            Assert.True(httpResult == httpReq);
        }
Example #8
0
        public void SecureCleaner_CleanString_GetUrlBody_OK()
        {
            //Arrange
            HttpResult httpReq = new HttpResult();

            httpReq.Url          = "http://test.com?user=max&pass=123456";
            httpReq.RequestBody  = "ok";
            httpReq.ResponseBody = "ok";

            HttpResult httpResult = new HttpResult();

            httpResult.Url          = "http://test.com?user=XXX&pass=XXXXXX";
            httpResult.RequestBody  = "ok";
            httpResult.ResponseBody = "ok";

            //Act
            SecureCleaner secureCleaner = new SecureCleaner();

            httpReq = secureCleaner.CleanString(httpReq);

            //Assert
            Assert.True(httpResult == httpReq);
        }
Example #9
0
        public void SecureCleaner_CleanString_TestBookingcom_OK()
        {
            //Arrange
            HttpResult bookingcomHttpResult = new HttpResult();

            bookingcomHttpResult.Url          = "http://test.com/users/max/info?pass=123456";
            bookingcomHttpResult.RequestBody  = "http://test.com?user=max&pass=123456";
            bookingcomHttpResult.ResponseBody = "http://test.com?user=max&pass=123456";

            HttpResult bookingcomResultHttpResult = new HttpResult();

            bookingcomResultHttpResult.Url          = "http://test.com/users/XXX/info?pass=XXXXXX";
            bookingcomResultHttpResult.RequestBody  = "http://test.com?user=XXX&pass=XXXXXX";
            bookingcomResultHttpResult.ResponseBody = "http://test.com?user=XXX&pass=XXXXXX";

            //Act
            SecureCleaner secureCleaner = new SecureCleaner();

            bookingcomHttpResult = secureCleaner.CleanString(bookingcomHttpResult);

            //Assert
            Assert.True(bookingcomHttpResult == bookingcomResultHttpResult);
        }
Example #10
0
        public void ClearSecure_ClearSecureInXml_SecureInXmlCleared()
        {
            // arrange
            var secureKey1 = "users";
            var secureKey2 = "pass";
            var locations  = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Rest, SecureLocationType.Query
            };

            var properties = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.RequestBody
            };
            var secureSettings1 = new SecureSettings(secureKey1, locations, properties);
            var secureSettings2 = new SecureSettings(secureKey2, locations, properties);

            var requestBody =
                "<?xml version=\"1.0\"?>" +
                "<PurchaseOrder PurchaseOrderNumber=\"99503\" OrderDate=\"1999-10-20\">" +
                "<Address Type=\"Shipping\">" +
                "<Name>Ellen Adams</Name>" +
                "<Street>123 Maple Street</Street>" +
                "<City>Mill Valley</City>" +
                "<State>CA</State>" +
                "<Zip>10999</Zip>" +
                "<Country>USA</Country>" +
                "</Address>" +
                "<Address Type=\"Billing\">" +
                "<Name>Tai Yee</Name>" +
                "<Street>8 Oak Avenue</Street>" +
                "<City>Old Town</City>" +
                "<State>PA</State>" +
                "<Zip>95819</Zip>" +
                "<Country>USA</Country>" +
                "</Address>" +
                "<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>" +
                "<Items>" +
                "<Item PartNumber=\"872-AA\">" +
                "<ProductName>Lawnmower</ProductName>" +
                "<Quantity>1</Quantity>" +
                "<USPrice>148.95</USPrice>" +
                "<Comment>Confirm this is electric</Comment>" +
                "</Item>" +
                "<Item PartNumber=\"926-AA\">" +
                "<ProductName>http://test.com/users/max/info?pass=123456</ProductName>" +
                "<Quantity>2</Quantity>" +
                "<USPrice>39.98</USPrice>" +
                "<ShipDate>1999-05-21</ShipDate>" +
                "</Item>" +
                "</Items>" +
                "</PurchaseOrder>";

            var expectedResult =
                "<?xml version=\"1.0\"?>" +
                "<PurchaseOrder PurchaseOrderNumber=\"99503\" OrderDate=\"1999-10-20\">" +
                "<Address Type=\"Shipping\">" +
                "<Name>Ellen Adams</Name>" +
                "<Street>123 Maple Street</Street>" +
                "<City>Mill Valley</City>" +
                "<State>CA</State>" +
                "<Zip>10999</Zip>" +
                "<Country>USA</Country>" +
                "</Address>" +
                "<Address Type=\"Billing\">" +
                "<Name>Tai Yee</Name>" +
                "<Street>8 Oak Avenue</Street>" +
                "<City>Old Town</City>" +
                "<State>PA</State>" +
                "<Zip>95819</Zip>" +
                "<Country>USA</Country>" +
                "</Address>" +
                "<DeliveryNotes>Please leave packages in shed by driveway.</DeliveryNotes>" +
                "<Items>" +
                "<Item PartNumber=\"872-AA\">" +
                "<ProductName>Lawnmower</ProductName>" +
                "<Quantity>1</Quantity>" +
                "<USPrice>148.95</USPrice>" +
                "<Comment>Confirm this is electric</Comment>" +
                "</Item>" +
                "<Item PartNumber=\"926-AA\">" +
                "<ProductName>http://test.com/users/XXX/info?pass=XXXXXX</ProductName>" +
                "<Quantity>2</Quantity>" +
                "<USPrice>39.98</USPrice>" +
                "<ShipDate>1999-05-21</ShipDate>" +
                "</Item>" +
                "</Items>" +
                "</PurchaseOrder>";

            var urlCleaner = new SecureCleaner(new List <SecureSettings> {
                secureSettings1, secureSettings2
            });
            var httpResult = new HttpResult("", requestBody, "");

            // act
            var cleanedHttpResult = urlCleaner.CleanHttpResult(httpResult);

            // assert
            Assert.Equal(expectedResult, cleanedHttpResult.RequestBody);
        }
Example #11
0
        public void ClearSecure_ClearSecureInJson_SecureInJsonCleared()
        {
            // arrange
            var secureKey1 = "users";
            var secureKey2 = "pass";
            var locations  = new HashSet <SecureLocationType>()
            {
                SecureLocationType.Rest, SecureLocationType.Query
            };

            var properties = new HashSet <SecurePropertyType>()
            {
                SecurePropertyType.RequestBody
            };
            var secureSettings1 = new SecureSettings(secureKey1, locations, properties);
            var secureSettings2 = new SecureSettings(secureKey2, locations, properties);

            var requestBody =
                "{" +
                "\"glossary\": {" +
                "\"title\": \"example glossary\"," +
                "\"GlossDiv\": {" +
                "\"title\": \"S\"," +
                "\"GlossList\": {" +
                "\"GlossEntry\": {" +
                "\"ID\": \"SGML\"," +
                "\"SortAs\": \"SGML\"," +
                "\"GlossTerm\": \"Standard Generalized Markup Language\"," +
                "\"Acronym\": \"SGML\"," +
                "\"Abbrev\": \"ISO 8879:1986\"," +
                "\"GlossDef\": {" +
                "\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\"," +
                "\"Requests\": [\"http://test.com/users/max/info?pass=123456\", \"http://test.com/users/max/info?pass=123456\"]" +
                "}," +
                "\"GlossSee\": \"markup\"" +
                "}" +
                "}" +
                "}" +
                "}" +
                "}";

            var expectedResult =
                "{" +
                "\"glossary\": {" +
                "\"title\": \"example glossary\"," +
                "\"GlossDiv\": {" +
                "\"title\": \"S\"," +
                "\"GlossList\": {" +
                "\"GlossEntry\": {" +
                "\"ID\": \"SGML\"," +
                "\"SortAs\": \"SGML\"," +
                "\"GlossTerm\": \"Standard Generalized Markup Language\"," +
                "\"Acronym\": \"SGML\"," +
                "\"Abbrev\": \"ISO 8879:1986\"," +
                "\"GlossDef\": {" +
                "\"para\": \"A meta-markup language, used to create markup languages such as DocBook.\"," +
                "\"Requests\": [\"http://test.com/users/XXX/info?pass=XXXXXX\", \"http://test.com/users/XXX/info?pass=XXXXXX\"]" +
                "}," +
                "\"GlossSee\": \"markup\"" +
                "}" +
                "}" +
                "}" +
                "}" +
                "}";

            var urlCleaner = new SecureCleaner(new List <SecureSettings> {
                secureSettings1, secureSettings2
            });
            var httpResult = new HttpResult("", requestBody, "");

            // act
            var cleanedHttpResult = urlCleaner.CleanHttpResult(httpResult);

            // assert
            Assert.Equal(expectedResult, cleanedHttpResult.RequestBody);
        }