-
Notifications
You must be signed in to change notification settings - Fork 123
Enforce limits of values read from incoming headers and app id lookup #608
Conversation
…nary(). Added Common classes and methods to support changes.
…as several protection including preventing unlimited retries etc
/// <summary> | ||
/// Max length of context header key. | ||
/// </summary> | ||
public const int ContextHeaderKeyMaxLength = 50; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i picked 50. Not sure if there is genuine need of key longer than this.
/// <summary> | ||
/// Max length of context header value. | ||
/// </summary> | ||
public const int ContextHeaderValueMaxLength = 100; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i picked 100. Not sure if there is genuine need of a value longer than this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@SergeyKanzhelev's guidance for WebSDK was to allow up to 1Kb. I made the same change above to RequestHeaderMaxLengeth
.
Consider if that is appropriate for here as well.
I'm approving these changes. Most everything was copied verbatim from microsoft/ApplicationInsights-dotnet-server#810 |
Addresses security concerns about malicious user attempting to send request with unreasonably large request headers. As SDK reads these values and stores locally/make part of Telemetry items, they can cause undesirable effects like high mem/cpu/ etc.
This attempts to enforce limits on values read from outside requests/responses.
For significant contributions please make sure you have completed the following items:
Changes in public surface reviewed
Design discussion issue #
CHANGELOG.md updated with one line description of the fix, and a link to the original issue.
The PR will trigger build, unit tests, and functional tests automatically. If your PR was submitted from fork - mention one of committers to initiate the build for you.
If you want to to re-run the build/tests, the easiest way is to simply Close and Re-Open this same PR. (Just click 'close pull request' followed by 'open pull request' buttons at the bottom of the PR)
Please follow [these] (https://github.com/Microsoft/ApplicationInsights-aspnetcore/blob/develop/Readme.md) instructions to build and test locally.