From 4bb352a0c02ccbd628c5f16bd773ec6e6494b5c2 Mon Sep 17 00:00:00 2001
From: Gabe Stocco <98900+gfs@users.noreply.github.com>
Date: Tue, 25 Jul 2023 12:37:44 -0700
Subject: [PATCH] Fix Issues with Confidence Display on Key Features Page of
HTML Report (#553)
* Remove legacy files from separate rules repo
* Switch Tag Detection for Features page to Regex
And update all search patterns to be regular expression istead of exact match
* Update Dependencies
---
.../AppInspector.Benchmarks.csproj | 4 +-
AppInspector.CLI/AppInspector.CLI.csproj | 4 +-
AppInspector.CLI/Writers/AnalyzeHtmlWriter.cs | 2 +-
.../preferences/tagreportgroups.json | 196 +++++++++---------
.../AppInspector.Common.csproj | 2 +-
.../AppInspector.RulesEngine.csproj | 8 +-
AppInspector.Tests/AppInspector.Tests.csproj | 6 +-
AppInspector/AppInspector.Commands.csproj | 8 +-
AppInspector/rules/CODE_OF_CONDUCT.md | 9 -
AppInspector/rules/LICENSE | 21 --
AppInspector/rules/README.md | 28 ---
AppInspector/rules/SECURITY.md | 53 -----
AppInspector/rules/SUPPORT.md | 26 ---
13 files changed, 114 insertions(+), 253 deletions(-)
delete mode 100644 AppInspector/rules/CODE_OF_CONDUCT.md
delete mode 100644 AppInspector/rules/LICENSE
delete mode 100644 AppInspector/rules/README.md
delete mode 100644 AppInspector/rules/SECURITY.md
delete mode 100644 AppInspector/rules/SUPPORT.md
diff --git a/AppInspector.Benchmarks/AppInspector.Benchmarks.csproj b/AppInspector.Benchmarks/AppInspector.Benchmarks.csproj
index c6b92ce3..c42e366b 100644
--- a/AppInspector.Benchmarks/AppInspector.Benchmarks.csproj
+++ b/AppInspector.Benchmarks/AppInspector.Benchmarks.csproj
@@ -10,8 +10,8 @@
-
-
+
+
diff --git a/AppInspector.CLI/AppInspector.CLI.csproj b/AppInspector.CLI/AppInspector.CLI.csproj
index 0f26fa02..1532f320 100644
--- a/AppInspector.CLI/AppInspector.CLI.csproj
+++ b/AppInspector.CLI/AppInspector.CLI.csproj
@@ -67,8 +67,8 @@
-
-
+
+
diff --git a/AppInspector.CLI/Writers/AnalyzeHtmlWriter.cs b/AppInspector.CLI/Writers/AnalyzeHtmlWriter.cs
index 6944fa0e..32af5e36 100644
--- a/AppInspector.CLI/Writers/AnalyzeHtmlWriter.cs
+++ b/AppInspector.CLI/Writers/AnalyzeHtmlWriter.cs
@@ -279,7 +279,7 @@ public void PopulateTagGroups()
foreach (var pattern in tagGroup.Patterns ?? new List())
{
pattern.Detected = _appMetaData?.UniqueTags is not null &&
- _appMetaData.UniqueTags.Any(v => v == pattern.SearchPattern);
+ _appMetaData.UniqueTags.Any(v => pattern.Expression.IsMatch(v));
if (unSupportedGroupsOrPatterns.Any(x => pattern.SearchPattern.ToLower().Contains(x)))
{
_logger.LogWarning(
diff --git a/AppInspector.CLI/preferences/tagreportgroups.json b/AppInspector.CLI/preferences/tagreportgroups.json
index 24aa8c1d..27ec94cc 100644
--- a/AppInspector.CLI/preferences/tagreportgroups.json
+++ b/AppInspector.CLI/preferences/tagreportgroups.json
@@ -1,5 +1,3 @@
-// Copyright (C) Microsoft. All rights reserved.
-// Licensed under the MIT License. See LICENSE.txt in the project root for license information.
[
{
"categoryName": "profile",
@@ -10,32 +8,32 @@
"dataRef": "SelectFeatures",
"patterns": [
{
- "searchPattern": "Authentication",
+ "searchPattern": "^Authentication\\..*",
"displayName": "Authentication",
"detectedIcon": "fas fa-user-shield"
},
{
- "searchPattern": "Authorization",
+ "searchPattern": "^Authorization\\..*",
"displayName": "Authorization",
"detectedIcon": "fas fa-user-lock"
},
{
- "searchPattern": "Cryptography",
+ "searchPattern": "^Cryptography\\..*",
"displayName": "Cryptography",
"detectedIcon": "fas fa-key"
},
{
- "searchPattern": "Deserialization",
+ "searchPattern": "^Data.Deserialization\\..*",
"displayName": "Object deserialization",
"detectedIcon": "far fa-object-ungroup"
},
{
- "searchPattern": "Data.Parsing.Media",
+ "searchPattern": "^Data.Parsing.Media$",
"displayName": "AV media parsing",
"detectedIcon": "fas fa-photo-video"
},
{
- "searchPattern": "DynamicExecution",
+ "searchPattern": "^OS.Process.DynamicExecution.*",
"displayName": "Dynamic command execution",
"detectedIcon": "fab fa-audible"
}
@@ -46,42 +44,42 @@
"dataRef": "CloudServices",
"patterns": [
{
- "searchPattern": "CloudServices.Hosting",
+ "searchPattern": "^CloudServices.Hosting\\..*",
"displayName": "Hosting",
"detectedIcon": "fab fa-microsoft"
},
{
- "searchPattern": "CloudServices.Application",
+ "searchPattern": "^CloudServices.Application\\..*",
"displayName": "Cloud application",
"detectedIcon": "fas fa-globe"
},
{
- "searchPattern": "CloudServices.DataStorage",
+ "searchPattern": "^CloudServices.DataStorage\\..*",
"displayName": "Cloud data storage",
"detectedIcon": "fas fa-cloud-upload-alt"
},
{
- "searchPattern": "CloudServices.BigData",
+ "searchPattern": "^CloudServices.BigData\\..*",
"displayName": "Big data",
"detectedIcon": "fas fa-warehouse"
},
{
- "searchPattern": "CloudServices.SocialMedia",
+ "searchPattern": "^CloudServices.SocialMedia\\..*",
"displayName": "Social media",
"detectedIcon": "fab fa-facebook-square"
},
{
- "searchPattern": "CloudServices.Finance.eCommerce",
+ "searchPattern": "^CloudServices.Finance.eCommerce$",
"displayName": "eCommerce",
"detectedIcon": "fas fa-shopping-cart"
},
{
- "searchPattern": "Web.Analytics",
+ "searchPattern": "^CloudServices.Web.Analytics.*",
"displayName": "Web Analytics",
"detectedIcon": "fas fa-flag-checkered"
},
{
- "searchPattern": ".AdvertisingNetwork",
+ "searchPattern": "^CloudServices.AdvertisingNetwork.*",
"displayName": "Advertising network",
"detectedIcon": "fas fa-ad"
}
@@ -92,37 +90,37 @@
"dataRef": "SessionCookies",
"patterns": [
{
- "searchPattern": "Cookies.Attr.HttpOnly",
+ "searchPattern": "^WebApp.Cookies.Attr.HttpOnly$",
"displayName": "HttpOnly attribute",
"detectedIcon": "fab fa-js"
},
{
- "searchPattern": "Cookies.Attr.Secure",
+ "searchPattern": "^WebApp.Cookies.Attr.Secure$",
"displayName": "Secure attribute",
"detectedIcon": "fas fa-shield-alt"
},
{
- "searchPattern": "Cookies.Attr.Lifetime",
+ "searchPattern": "^WebApp.Cookies.Attr.Lifetime$",
"displayName": "Lifetime attribute",
"detectedIcon": "fas fa-heartbeat"
},
{
- "searchPattern": "Cookies.Attr.Strict",
+ "searchPattern": "^WebApp.Cookies.Attr.Strict$",
"displayName": "Strict attribute",
"detectedIcon": "fas fa-gavel"
},
{
- "searchPattern": "Cookies.Attr.SameSite",
+ "searchPattern": "^WebApp.Cookies.Attr.SameSite$",
"displayName": "SameSite attribute",
"detectedIcon": "far fa-object-group"
},
{
- "searchPattern": "Cookies.Attr.Expires",
+ "searchPattern": "^WebApp.Cookies.Attr.Expires$",
"displayName": "Expires attribute",
"detectedIcon": "far fa-calendar-times"
},
{
- "searchPattern": "Cookies.Attr.Domain",
+ "searchPattern": "^WebApp.Cookies.Attr.Domain$",
"displayName": "Domain attribute",
"detectedIcon": "fas fa-hotel"
}
@@ -133,32 +131,32 @@
"dataRef": "Databases",
"patterns": [
{
- "searchPattern": "DBMS.SQLite",
+ "searchPattern": "^Data.DBMS.SQLite$",
"displayName": "SQLite database",
"detectedIcon": "fas fa-table"
},
{
- "searchPattern": "DBMS.SQL",
+ "searchPattern": "^Data.DBMS.SQL$",
"displayName": "SQL database",
"detectedIcon": "fas fa-database"
},
{
- "searchPattern": "DBMS.NOSQL",
+ "searchPattern": "^Data.DBMS.NOSQL$",
"displayName": "NOSQL database",
"detectedIcon": "fab fa-mdb"
},
{
- "searchPattern": "DBMS.PostgreSQL",
+ "searchPattern": "^Data.DBMS.PostgreSQL$",
"displayName": "PostgreSQL Database",
"detectedIcon": "fas fa-archive"
},
{
- "searchPattern": "DBMS.Oracle",
+ "searchPattern": "^Data.DBMS.Oracle$",
"displayName": "Database ORM",
"detectedIcon": "fas fa-map"
},
{
- "searchPattern": "DBMS.General",
+ "searchPattern": "^Data.DBMS.General$",
"displayName": "General database",
"detectedIcon": "fas fa-save"
}
@@ -169,37 +167,37 @@
"dataRef": "Development",
"patterns": [
{
- "searchPattern": ".Build",
+ "searchPattern": "^Development.Build.*",
"displayName": "Build",
"detectedIcon": "fas fa-building"
},
{
- "searchPattern": "Code.Repo",
+ "searchPattern": "^CloudServices.Code.Repo.*",
"displayName": "Source Code Repository",
"detectedIcon": "fas fa-archive"
},
{
- "searchPattern": "Code.CI",
+ "searchPattern": "^CloudServices.Code.CI.*",
"displayName": "Continuous integration",
"detectedIcon": "fas fa-vials"
},
{
- "searchPattern": "Framework.Development",
+ "searchPattern": "^Framework.Development.*",
"displayName": "Development framework",
"detectedIcon": "fab fa-dev"
},
{
- "searchPattern": "Framework.Testing",
+ "searchPattern": "^Framework.Testing.*",
"displayName": "Testing framework",
"detectedIcon": "fas fa-vial"
},
{
- "searchPattern": "OpenSourceLicense",
+ "searchPattern": "^Miscellaneous.OpenSourceLicense.*",
"displayName": "Open source",
"detectedIcon": "fab fa-github"
},
{
- "searchPattern": "Framework.CMS",
+ "searchPattern": "^Framework.CMS.*",
"displayName": "Content management system",
"detectedIcon": "fab fa-wordpress"
},
@@ -215,42 +213,42 @@
"dataRef": "DevicePermissions",
"patterns": [
{
- "searchPattern": "Permissions.PhoneCalls",
+ "searchPattern": "^Device.Permissions.PhoneCalls.*",
"displayName": "Phone calls",
"detectedIcon": "fa fa-phone"
},
{
- "searchPattern": "Permissions.SMS",
+ "searchPattern": "^Device.Permissions.SMS.*",
"displayName": "SMS",
"detectedIcon": "far fa-comment"
},
{
- "searchPattern": "Permissions.Email",
+ "searchPattern": "^Device.Permissions.Email.*",
"displayName": "Email",
"detectedIcon": "fa fa-envelope"
},
{
- "searchPattern": "Permissions.CalendarEvents",
+ "searchPattern": "^Device.Permissions.CalendarEvents.*",
"displayName": "Calendar events",
"detectedIcon": "far fa-calendar-alt"
},
{
- "searchPattern": "Permissions.Camera",
+ "searchPattern": "^Device.Permissions.Camera.*",
"displayName": "Camera",
"detectedIcon": "fa fa-camera"
},
{
- "searchPattern": "Permissions.MediaLibrary",
+ "searchPattern": "^Device.Permissions.MediaLibrary.*",
"displayName": "Media library",
"detectedIcon": "far fa-file-audio"
},
{
- "searchPattern": "Permissions.VoiceCommand",
+ "searchPattern": "^Device.Permissions.VoiceCommand.*",
"displayName": "Voice command",
"detectedIcon": "fa fa-bullhorn"
},
{
- "searchPattern": "Permissions.Microphone",
+ "searchPattern": "^Device.Permissions.Microphone.*",
"displayName": "Microphone",
"detectedIcon": "fa fa-microphone"
}
@@ -261,42 +259,42 @@
"dataRef": "GeneralFeatures",
"patterns": [
{
- "searchPattern": "Network.Connection",
+ "searchPattern": "^OS.Network.Connection.*",
"displayName": "Network communications",
"detectedIcon": "fas fa-network-wired"
},
{
- "searchPattern": "FileOperation.Read",
+ "searchPattern": "^OS.FileOperation.Read$",
"displayName": "File read",
"detectedIcon": "fas fa-file"
},
{
- "searchPattern": "FileOperation.Write",
+ "searchPattern": "^OS.FileOperation.Write$",
"displayName": "File write",
"detectedIcon": "far fa-edit"
},
{
- "searchPattern": "FileOperation.Delete",
+ "searchPattern": "^OS.FileOperation.Delete$",
"displayName": "File delete",
"detectedIcon": "fas fa-trash"
},
{
- "searchPattern": "Multiprocessing",
+ "searchPattern": "^OS.Process.Multiprocessing$",
"displayName": "Multi-threaded processing",
"detectedIcon": "fas fa-code-branch"
},
{
- "searchPattern": "Logging",
+ "searchPattern": "^Framework.Development.Logging.*",
"displayName": "Logging",
"detectedIcon": "far fa-clock"
},
{
- "searchPattern": "Data.Parsing.XML",
+ "searchPattern": "^Data.Parsing.XML$",
"displayName": "Processes XML",
"detectedIcon": "far fa-file-code"
},
{
- "searchPattern": "Data.Parsing.JSON",
+ "searchPattern": "^Data.Parsing.JSON$",
"displayName": "Processes JSON",
"detectedIcon": "far fa-file-alt"
}
@@ -307,37 +305,37 @@
"dataRef": "Miscellenous",
"patterns": [
{
- "searchPattern": "Data.Media",
+ "searchPattern": "^Data.Media.*",
"displayName": "AV media",
"detectedIcon": "fas fa-play-circle"
},
{
- "searchPattern": "Data.Zipfile",
+ "searchPattern": "^Data.Zipfile$",
"displayName": "Zip file processing",
"detectedIcon": "far fa-file-archive"
},
{
- "searchPattern": "HTMLForm.Defined",
+ "searchPattern": "^Metric.Code.HTMLForm.Defined$",
"displayName": "HTML form",
"detectedIcon": "far fa-window-maximize"
},
{
- "searchPattern": "Exception.Caught",
+ "searchPattern": "^Metric.Code.Exception.Caught$",
"displayName": "Exception caught",
"detectedIcon": "fas fa-meteor"
},
{
- "searchPattern": "Hardware",
+ "searchPattern": "^Hardware.*",
"displayName": "Specialized hardware",
"detectedIcon": "far fa-keyboard"
},
{
- "searchPattern": "Comment.Fix",
+ "searchPattern": "^Miscellaneous.CodeHygiene.Comment.Fix$",
"displayName": "Fix comments",
"detectedIcon": "fas fa-toolbox"
},
{
- "searchPattern": "Comment.Suspicious",
+ "searchPattern": "^Miscellaneous.CodeHygiene.Comment.Suspicious$",
"displayName": "Suspicious comments",
"detectedIcon": "fas fa-burn"
}
@@ -348,32 +346,32 @@
"dataRef": "OSIntegration",
"patterns": [
{
- "searchPattern": "Metadata.Platform.OS",
+ "searchPattern": "^Platform.OS.*",
"displayName": "OS platform",
"detectedIcon": "fab fa-linux"
},
{
- "searchPattern": "Application.Container",
+ "searchPattern": "^Application.Container.*",
"displayName": "App container",
"detectedIcon": "fas fa-box"
},
{
- "searchPattern": "OS.Environment.Read",
+ "searchPattern": "^OS.Environment.Read$",
"displayName": "Environment variable read",
"detectedIcon": "fas fa-tree"
},
{
- "searchPattern": "Process.ListRequest",
+ "searchPattern": "^OS.Process.ListRequest$",
"displayName": "OS process scan",
"detectedIcon": "fas fa-binoculars"
},
{
- "searchPattern": "OS.SystemRegistry.Read",
+ "searchPattern": "^OS.SystemRegistry.Read$",
"displayName": "Windows registry read",
"detectedIcon": "fas fa-cubes"
},
{
- "searchPattern": "Application.Type.Client.Service",
+ "searchPattern": "^Application.Type.Client.Service.*",
"displayName": "Local system service",
"detectedIcon": "fas fa-door-open"
}
@@ -384,12 +382,12 @@
"dataRef": "OSSystemChanges",
"patterns": [
{
- "searchPattern": "OS.UserAccount.Write",
+ "searchPattern": "^OS.UserAccount.Write$",
"displayName": "System user write",
"detectedIcon": "fas fa-user-plus"
},
{
- "searchPattern": "ACL.Write",
+ "searchPattern": "^OS.ACL.Write.*",
"displayName": "Permissions write",
"detectedIcon": "fas fa-file-signature"
},
@@ -399,17 +397,17 @@
"detectedIcon": "fab fa-bandcamp"
},
{
- "searchPattern": "OS.Environment.Write",
+ "searchPattern": "^OS.Environment.Write$",
"displayName": "Environment variable write",
"detectedIcon": "fas fa-tree"
},
{
- "searchPattern": "SystemRegistry.Write",
+ "searchPattern": "^OS.SystemRegistry.Write$",
"displayName": "Windows registry write",
"detectedIcon": "fas fa-tools"
},
{
- "searchPattern": "SystemRegistry.ACL",
+ "searchPattern": "^OS.SystemRegistry.ACL$",
"displayName": "Windows registry ACL",
"detectedIcon": "fas fa-unlock"
}
@@ -420,27 +418,27 @@
"dataRef": "PipelineTools",
"patterns": [
{
- "searchPattern": ".CompilerSettings",
+ "searchPattern": "^Pipeline.CompilerSettings.*",
"displayName": "Compiler Settings",
"detectedIcon": "fas fa-list-ul"
},
{
- "searchPattern": "Packaging.CodeSigning",
+ "searchPattern": "^Pipeline.Packaging.CodeSigning$",
"displayName": "Code Signing",
"detectedIcon": "fas fa-signature"
},
{
- "searchPattern": ".Linter",
+ "searchPattern": "^Pipeline.Linter.*",
"displayName": "Linters",
"detectedIcon": "fas fa-spell-check"
},
{
- "searchPattern": ".StaticAnalysis",
+ "searchPattern": "^Pipeline.StaticAnalysis.*",
"displayName": "Static Analyzers",
"detectedIcon": "fas fa-microscope "
},
{
- "searchPattern": "Pipeline.Packaging",
+ "searchPattern": "^Pipeline.Packaging.*",
"displayName": "Packaging",
"detectedIcon": "fas fa-truck-loading"
}
@@ -451,42 +449,42 @@
"dataRef": "SessionHeaders",
"patterns": [
{
- "searchPattern": "Headers.HSTS",
+ "searchPattern": "^WebApp.Headers.HSTS$",
"displayName": "Strict Transport Security (HSTS)",
"detectedIcon": "far fa-hand-paper"
},
{
- "searchPattern": "Headers.CSP",
+ "searchPattern": "^WebApp.Headers.CSP$",
"displayName": "Content Security Policy (CSP)",
"detectedIcon": "fas fa-dungeon"
},
{
- "searchPattern": "Headers.X-Frame",
+ "searchPattern": "^WebApp.Headers.X-Frame$",
"displayName": "X-Frame-Options",
"detectedIcon": "fas fa-crop"
},
{
- "searchPattern": "Headers.XSS",
+ "searchPattern": "^WebApp.Headers.XSS$",
"displayName": "Cross Site Scripting (X-XSS)",
"detectedIcon": "fas fa-times"
},
{
- "searchPattern": "Headers.HPKP",
+ "searchPattern": "^WebApp.Headers.HPKP$",
"displayName": "Public Key Pins (HPKP) Deprecated",
"detectedIcon": "fas fa-thumbtack"
},
{
- "searchPattern": "Headers.Expect-CT",
+ "searchPattern": "^WebApp.Headers.Expect-CT$",
"displayName": "Certificate Transparency (Expect-CT)",
"detectedIcon": "fas fa-certificate"
},
{
- "searchPattern": "Headers.X-Content-Type",
+ "searchPattern": "^WebApp.Headers.X-Content-Type$",
"displayName": "X-Content-Type Options",
"detectedIcon": "fas fa-border-style"
},
{
- "searchPattern": "Headers.Clear-Site-Data",
+ "searchPattern": "^WebApp.Headers.Clear-Site-Data$",
"displayName": "Clear Site Data",
"detectedIcon": "fas fa-fire-alt"
}
@@ -497,42 +495,42 @@
"dataRef": "SensitiveData",
"patterns": [
{
- "searchPattern": "Sensitive.Identification",
+ "searchPattern": "^Data.Sensitive.Identification$",
"displayName": "Personally identifiable data",
"detectedIcon": "far fa-address-card"
},
{
- "searchPattern": "Sensitive.Medical",
+ "searchPattern": "^Data.Sensitive.Medical$",
"displayName": "Medical data",
"detectedIcon": "fas fa-stethoscope"
},
{
- "searchPattern": "Sensitive.Credentials",
+ "searchPattern": "^Data.Sensitive.Credentials$",
"displayName": "Credentials",
"detectedIcon": "fas fa-user-secret"
},
{
- "searchPattern": "Sensitive.UserAccount",
+ "searchPattern": "^Data.Sensitive.UserAccount$",
"displayName": "Account or membership",
"detectedIcon": "fas fa-user-circle"
},
{
- "searchPattern": "Sensitive.ProductKey",
+ "searchPattern": "^Data.Sensitive.ProductKey$",
"displayName": "Product key",
"detectedIcon": "fas fa-compact-disc"
},
{
- "searchPattern": "CryptoCurrency",
+ "searchPattern": "^Cryptography.CryptoCurrency$",
"displayName": "Crypto currency",
"detectedIcon": "fab fa-bitcoin"
},
{
- "searchPattern": "Sensitive.Secret",
+ "searchPattern": "^Data.Sensitive.Secret$",
"displayName": "Sensitive secret",
"detectedIcon": "fab fa-keycdn"
},
{
- "searchPattern": "Sensitive.Financial",
+ "searchPattern": "^Data.Sensitive.Financial.*",
"displayName": "Financial data",
"detectedIcon": "fas fa-money-bill"
}
@@ -543,42 +541,42 @@
"dataRef": "WebAppFeatures",
"patterns": [
{
- "searchPattern": "WebApp.Media.Audio",
+ "searchPattern": "^WebApp.Media.Audio$",
"displayName": "HTML5 Audio",
"detectedIcon": "fas fa-volume-up"
},
{
- "searchPattern": "WebApp.Media.GetUserMedia",
+ "searchPattern": "^WebApp.Media.GetUserMedia$",
"displayName": "HTML5 GetUserMedia",
"detectedIcon": "fas fa-play-circle"
},
{
- "searchPattern": "IndexedDB",
+ "searchPattern": "^WebApp.Storage.IndexedDB$",
"displayName": "HTML5 IndexedDB",
"detectedIcon": "fas fa-arrow-alt-circle-down"
},
{
- "searchPattern": "WebApp.Communications.PostMessage",
+ "searchPattern": "^WebApp.Communications.PostMessage$",
"displayName": "HTML5 PostMessage",
"detectedIcon": "fas fa-share-square"
},
{
- "searchPattern": "WebApp.Communications.ServerEvent",
+ "searchPattern": "^WebApp.Communications.ServerEvent$",
"displayName": "HTML5 Server Sent Event",
"detectedIcon": "fas fa-satellite-dish"
},
{
- "searchPattern": "WebApp.Storage.FileReader",
+ "searchPattern": "^WebApp.Storage.FileReader$",
"displayName": "HTML5 File Reader",
"detectedIcon": "fas fa-book-open"
},
{
- "searchPattern": "WebApp.Worker",
+ "searchPattern": "^WebApp.Worker$",
"displayName": "HTML5 Worker",
"detectedIcon": "fas fa-people-carry"
},
{
- "searchPattern": "WebApp.Storage.FileUpload",
+ "searchPattern": "^WebApp.Storage.FileUpload$",
"displayName": "HTML5 File Upload",
"detectedIcon": "fas fa-file-upload"
}
diff --git a/AppInspector.Common/AppInspector.Common.csproj b/AppInspector.Common/AppInspector.Common.csproj
index 57e7a75f..ebfc8bcd 100644
--- a/AppInspector.Common/AppInspector.Common.csproj
+++ b/AppInspector.Common/AppInspector.Common.csproj
@@ -30,7 +30,7 @@
-
+
diff --git a/AppInspector.RulesEngine/AppInspector.RulesEngine.csproj b/AppInspector.RulesEngine/AppInspector.RulesEngine.csproj
index bd4bef88..1b51ca30 100644
--- a/AppInspector.RulesEngine/AppInspector.RulesEngine.csproj
+++ b/AppInspector.RulesEngine/AppInspector.RulesEngine.csproj
@@ -32,10 +32,10 @@
-
-
-
-
+
+
+
+
diff --git a/AppInspector.Tests/AppInspector.Tests.csproj b/AppInspector.Tests/AppInspector.Tests.csproj
index c1b41a46..dc849ff4 100644
--- a/AppInspector.Tests/AppInspector.Tests.csproj
+++ b/AppInspector.Tests/AppInspector.Tests.csproj
@@ -18,9 +18,9 @@
-
-
-
+
+
+
diff --git a/AppInspector/AppInspector.Commands.csproj b/AppInspector/AppInspector.Commands.csproj
index fed790e1..7eda50f7 100644
--- a/AppInspector/AppInspector.Commands.csproj
+++ b/AppInspector/AppInspector.Commands.csproj
@@ -55,11 +55,11 @@
-
-
-
+
+
+
-
+
diff --git a/AppInspector/rules/CODE_OF_CONDUCT.md b/AppInspector/rules/CODE_OF_CONDUCT.md
deleted file mode 100644
index f9ba8cf6..00000000
--- a/AppInspector/rules/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1,9 +0,0 @@
-# Microsoft Open Source Code of Conduct
-
-This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
-
-Resources:
-
-- [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/)
-- [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/)
-- Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns
diff --git a/AppInspector/rules/LICENSE b/AppInspector/rules/LICENSE
deleted file mode 100644
index 9e841e7a..00000000
--- a/AppInspector/rules/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
- MIT License
-
- Copyright (c) Microsoft Corporation.
-
- Permission is hereby granted, free of charge, to any person obtaining a copy
- of this software and associated documentation files (the "Software"), to deal
- in the Software without restriction, including without limitation the rights
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- copies of the Software, and to permit persons to whom the Software is
- furnished to do so, subject to the following conditions:
-
- The above copyright notice and this permission notice shall be included in all
- copies or substantial portions of the Software.
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
- SOFTWARE
diff --git a/AppInspector/rules/README.md b/AppInspector/rules/README.md
deleted file mode 100644
index 5cc47855..00000000
--- a/AppInspector/rules/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# Application Inspector Rules
-
-This repository contains the default rule set
-for [Application Inspector](https://github.com/Microsoft/ApplicationInspector/).
-
-## Contributing
-
-This project welcomes contributions and suggestions. Most contributions require you to agree to a
-Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us
-the rights to use your contribution. For details, visit https://cla.opensource.microsoft.com.
-
-When you submit a pull request, a CLA bot will automatically determine whether you need to provide
-a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions
-provided by the bot. You will only need to do this once across all repos using our CLA.
-
-This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/).
-For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or
-contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
-
-## Trademarks
-
-This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft
-trademarks or logos is subject to and must follow
-[Microsoft's Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general)
-.
-Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft
-sponsorship.
-Any use of third-party trademarks or logos are subject to those third-party's policies.
diff --git a/AppInspector/rules/SECURITY.md b/AppInspector/rules/SECURITY.md
deleted file mode 100644
index f41f8d0d..00000000
--- a/AppInspector/rules/SECURITY.md
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-## Security
-
-Microsoft takes the security of our software products and services seriously, which includes all source code
-repositories managed through our GitHub organizations, which include [Microsoft](https://github.com/Microsoft)
-, [Azure](https://github.com/Azure), [DotNet](https://github.com/dotnet), [AspNet](https://github.com/aspnet)
-, [Xamarin](https://github.com/xamarin), and [our GitHub organizations](https://opensource.microsoft.com/).
-
-If you believe you have found a security vulnerability in any Microsoft-owned repository that
-meets [Microsoft's definition of a security vulnerability](https://docs.microsoft.com/en-us/previous-versions/tn-archive/cc751383(v=technet.10))
-, please report it to us as described below.
-
-## Reporting Security Issues
-
-**Please do not report security vulnerabilities through public GitHub issues.**
-
-Instead, please report them to the Microsoft Security Response Center (MSRC)
-at [https://msrc.microsoft.com/create-report](https://msrc.microsoft.com/create-report).
-
-If you prefer to submit without logging in, send email to [secure@microsoft.com](mailto:secure@microsoft.com). If
-possible, encrypt your message with our PGP key; please download it from
-the [Microsoft Security Response Center PGP Key page](https://www.microsoft.com/en-us/msrc/pgp-key-msrc).
-
-You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we
-received your original message. Additional information can be found
-at [microsoft.com/msrc](https://www.microsoft.com/msrc).
-
-Please include the requested information listed below (as much as you can provide) to help us better understand the
-nature and scope of the possible issue:
-
-* Type of issue (e.g. buffer overflow, SQL injection, cross-site scripting, etc.)
-* Full paths of source file(s) related to the manifestation of the issue
-* The location of the affected source code (tag/branch/commit or direct URL)
-* Any special configuration required to reproduce the issue
-* Step-by-step instructions to reproduce the issue
-* Proof-of-concept or exploit code (if possible)
-* Impact of the issue, including how an attacker might exploit the issue
-
-This information will help us triage your report more quickly.
-
-If you are reporting for a bug bounty, more complete reports can contribute to a higher bounty award. Please visit
-our [Microsoft Bug Bounty Program](https://microsoft.com/msrc/bounty) page for more details about our active programs.
-
-## Preferred Languages
-
-We prefer all communications to be in English.
-
-## Policy
-
-Microsoft follows the principle of [Coordinated Vulnerability Disclosure](https://www.microsoft.com/en-us/msrc/cvd).
-
-
\ No newline at end of file
diff --git a/AppInspector/rules/SUPPORT.md b/AppInspector/rules/SUPPORT.md
deleted file mode 100644
index 947099e4..00000000
--- a/AppInspector/rules/SUPPORT.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# TODO: The maintainer of this repo has not yet edited this file
-
-**REPO OWNER**: Do you want Customer Service & Support (CSS) support for this product/project?
-
-- **No CSS support:** Fill out this template with information about how to file issues and get help.
-- **Yes CSS support:** Fill out an intake form at [aka.ms/onboardsupport](https://aka.ms/onboardsupport). CSS will work
- with/help you to determine next steps.
-- **Not sure?** Fill out an intake as though the answer were "Yes". CSS will help you decide.
-
-*Then remove this first heading from this SUPPORT.MD file before publishing your repo.*
-
-# Support
-
-## How to file issues and get help
-
-This project uses GitHub Issues to track bugs and feature requests. Please search the existing
-issues before filing new issues to avoid duplicates. For new issues, file your bug or
-feature request as a new Issue.
-
-For help and questions about using this project, please **REPO MAINTAINER: INSERT INSTRUCTIONS HERE
-FOR HOW TO ENGAGE REPO OWNERS OR COMMUNITY FOR HELP. COULD BE A STACK OVERFLOW TAG OR OTHER
-CHANNEL. WHERE WILL YOU HELP PEOPLE?**.
-
-## Microsoft Support Policy
-
-Support for this **PROJECT or PRODUCT** is limited to the resources listed above.