protected override void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResults)
        {
            var obj = JsonConvert.SerializeObject(new
            {
                Url      = securityCheckExecutionResults.Url,
                DateTime = securityCheckExecutionResults.DateTime.ToString(),
                Results  = securityCheckExecutionResults.Select(r => new
                {
                    CheckName      = r.SecurityCheck.Name,
                    Category       = r.SecurityCheck.Category,
                    HttpsOnly      = r.SecurityCheck.HttpsOnly,
                    State          = GetText(r.SecurityCheckResult.State),
                    Recommandation = r.SecurityCheckResult.Recommandation,
                    Value          = r.SecurityCheckResult.Value,
                    HasError       = r.HasError,
                    Error          = r.Exception?.ToString()
                })
            }, new JsonSerializerSettings()
            {
                ReferenceLoopHandling = ReferenceLoopHandling.Ignore,
                Formatting            = Formatting.Indented,
                TypeNameHandling      = TypeNameHandling.None
            });

            File.WriteAllText(_path, obj);
        }
 public void Write(SecurityCheckPiplineResult securityCheckExecutionResults)
 {
     if (securityCheckExecutionResults is null)
     {
         throw new ArgumentNullException(nameof(securityCheckExecutionResults));
     }
     WriteCore(securityCheckExecutionResults);
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Analyzes a HTTP response.
        /// </summary>
        /// <param name="httpResponse">The target response.</param>
        /// <returns>The results from the scan.</returns>
        public SecurityCheckPiplineResult Analyze(HttpResponseMessage httpResponse)
        {
            if (httpResponse is null)
            {
                throw new ArgumentNullException(nameof(httpResponse));
            }

            var result = new SecurityCheckPiplineResult();

            foreach (var securityCheck in SecurityChecks)
            {
                try
                {
                    var info = securityCheck.Check(httpResponse);
                    result.Add(securityCheck, info);
                }
                catch (Exception ex)
                {
                    result.Add(securityCheck, ex);
                }
            }
            return(result);
        }
Ejemplo n.º 4
0
        protected override void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResult)
        {
            Console.WriteLine();
            Console.WriteIntent(2);
            Console.WriteLine("Report Summary");

            var checkNameColumnSize = securityCheckExecutionResult.Max(s => s.SecurityCheck.Name.Length);
            var valueColumnSize     = securityCheckExecutionResult.Max(s => s.SecurityCheckResult.Value.Length);

            var groupedByType = securityCheckExecutionResult.GroupBy(r => r.SecurityCheck.Category);

            foreach (var group in groupedByType)
            {
                Console.WriteLine();
                Console.WriteIntent(4);
                Console.WriteLine($"> {group.Key} checks");
                Console.WriteLine();
                foreach (var item in group)
                {
                    Write(item, valueColumnSize, checkNameColumnSize);
                }
            }
        }
        protected override void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResult)
        {
            using (var textWriter = TextWriterFactory())
            {
                textWriter.WriteLine(securityCheckExecutionResult.Url);
                textWriter.WriteLine(securityCheckExecutionResult.DateTime);
                textWriter.WriteLine("Report Summary");

                var maxNameLenght = securityCheckExecutionResult.Max(r => r.SecurityCheck.Name.Length);
                var groupedByType = securityCheckExecutionResult.GroupBy(r => r.SecurityCheck.Category);

                foreach (var group in groupedByType)
                {
                    textWriter.WriteLine();
                    textWriter.WriteLine($"> {group.Key} checks");
                    textWriter.WriteLine();
                    foreach (var item in group)
                    {
                        Write(textWriter, item, maxNameLenght);
                    }
                }
                textWriter.Flush();
            }
        }
 protected abstract void WriteCore(SecurityCheckPiplineResult securityCheckExecutionResults);