rspec/rules/S4507/csharp/rule.adoc

66 lines
1.9 KiB
Plaintext
Raw Normal View History

2020-06-30 12:49:37 +02:00
include::../description.adoc[]
include::../ask-yourself.adoc[]
== Recommended Secure Coding Practices
Do not enable debug features on production servers.
2021-02-02 15:02:10 +01:00
2021-01-27 13:42:22 +01:00
The .Net Core framework offers multiple features which help during debug. ``++Microsoft.AspNetCore.Builder.IApplicationBuilder.UseDeveloperExceptionPage++`` and ``++Microsoft.AspNetCore.Builder.IApplicationBuilder.UseDatabaseErrorPage++`` are two of them. Make sure that those features are disabled in production.
2021-02-02 15:02:10 +01:00
2021-01-27 13:42:22 +01:00
Use ``++if (env.IsDevelopment())++`` to disable debug code.
2020-06-30 12:49:37 +02:00
== Sensitive Code Example
2021-01-27 13:42:22 +01:00
This rule raises issues when the following .Net Core methods are called: ``++Microsoft.AspNetCore.Builder.IApplicationBuilder.UseDeveloperExceptionPage++``, ``++Microsoft.AspNetCore.Builder.IApplicationBuilder.UseDatabaseErrorPage++``.
2020-06-30 12:49:37 +02:00
----
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
namespace mvcApp
{
public class Startup2
{
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
// Those calls are Sensitive because it seems that they will run in production
app.UseDeveloperExceptionPage(); // Sensitive
app.UseDatabaseErrorPage(); // Sensitive
}
}
}
----
== Compliant Solution
----
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
namespace mvcApp
{
public class Startup2
{
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
// The following calls are ok because they are disabled in production
app.UseDeveloperExceptionPage(); // Compliant
app.UseDatabaseErrorPage(); // Compliant
}
}
}
}
----
== Exceptions
This rule does not analyze configuration files. Make sure that debug mode is not enabled by default in those files.
include::../see.adoc[]