
When an include is not surrounded by empty lines, its content is inlined on the same line as the adjacent content. That can lead to broken tags and other display issues. This PR fixes all such includes and introduces a validation step that forbids introducing the same problem again.
127 lines
2.8 KiB
Plaintext
127 lines
2.8 KiB
Plaintext
include::../description.adoc[]
|
|
|
|
include::../ask-yourself.adoc[]
|
|
|
|
include::../recommended.adoc[]
|
|
|
|
== Sensitive Code Example
|
|
|
|
----
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
public class MyController : Controller
|
|
{
|
|
[HttpPost]
|
|
[DisableRequestSizeLimit] // Sensitive: No size limit
|
|
[RequestSizeLimit(10000000)] // Sensitive: 10MB is more than the recommended limit of 8MB
|
|
public IActionResult PostRequest(Model model)
|
|
{
|
|
// ...
|
|
}
|
|
|
|
[HttpPost]
|
|
[RequestFormLimits(MultipartBodyLengthLimit = 8000000)] // Sensitive: 10MB is more than the recommended limit of 8MB
|
|
public IActionResult MultipartFormRequest(Model model)
|
|
{
|
|
// ...
|
|
}
|
|
}
|
|
----
|
|
|
|
In Web.config:
|
|
|
|
----
|
|
<configuration>
|
|
<system.web>
|
|
<httpRuntime maxRequestLength="81920" executionTimeout="3600" />
|
|
<!-- Sensitive: maxRequestLength is exprimed in KB, so 81920KB = 80MB -->
|
|
</system.web>
|
|
<system.webServer>
|
|
<security>
|
|
<requestFiltering>
|
|
<requestLimits maxAllowedContentLength="83886080" />
|
|
<!-- Sensitive: maxAllowedContentLength is exprimed in bytes, so 83886080B = 80MB -->
|
|
</requestFiltering>
|
|
</security>
|
|
</system.webServer>
|
|
</configuration>
|
|
----
|
|
|
|
== Compliant Solution
|
|
|
|
[source,csharp]
|
|
----
|
|
using Microsoft.AspNetCore.Mvc;
|
|
|
|
public class MyController : Controller
|
|
{
|
|
[HttpPost]
|
|
[RequestSizeLimit(8000000)] // Compliant: 8MB
|
|
public IActionResult PostRequest(Model model)
|
|
{
|
|
// ...
|
|
}
|
|
|
|
[HttpPost]
|
|
[RequestFormLimits(MultipartBodyLengthLimit = 8000000)] // Compliant: 8MB
|
|
public IActionResult MultipartFormRequest(Model model)
|
|
{
|
|
// ...
|
|
}
|
|
}
|
|
----
|
|
|
|
In Web.config:
|
|
|
|
[source,csharp]
|
|
----
|
|
<configuration>
|
|
<system.web>
|
|
<httpRuntime maxRequestLength="8192" executionTimeout="3600" />
|
|
<!-- Compliant: maxRequestLength is exprimed in KB, so 8192KB = 8MB -->
|
|
</system.web>
|
|
<system.webServer>
|
|
<security>
|
|
<requestFiltering>
|
|
<requestLimits maxAllowedContentLength="8388608" />
|
|
<!-- Comliant: maxAllowedContentLength is exprimed in bytes, so 8388608B = 8MB -->
|
|
</requestFiltering>
|
|
</security>
|
|
</system.webServer>
|
|
</configuration>
|
|
----
|
|
|
|
include::../see.adoc[]
|
|
|
|
* https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/web-config[Web.config] - XML-formatted config file for IIS applications
|
|
|
|
ifdef::env-github,rspecator-view[]
|
|
|
|
'''
|
|
== Implementation Specification
|
|
(visible only on this page)
|
|
|
|
include::../message.adoc[]
|
|
|
|
=== Parameters
|
|
|
|
.fileUploadSizeLimit
|
|
****
|
|
_integer_
|
|
|
|
----
|
|
8000000
|
|
----
|
|
|
|
The maximum size of HTTP requests handling file uploads (in bytes)
|
|
****
|
|
|
|
|
|
'''
|
|
== Comments And Links
|
|
(visible only on this page)
|
|
|
|
include::../comments-and-links.adoc[]
|
|
|
|
endif::env-github,rspecator-view[]
|