
Inline adoc files when they are included exactly once. Also fix language tags because this inlining gives us better information on what language the code is written in.
126 lines
2.8 KiB
Plaintext
126 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[]
|