Sitelet https://github.com/microsoft/ApplicationInsights-aspnetcore/pull/608#event-1496032582
Skip to content
This repository was archived by the owner on Jun 10, 2020. It is now read-only.

Enforce limits of values read from incoming headers and app id lookup - #608

Merged
Cijo Thomas (cijothomas) merged 13 commits into
developfrom
cithomas/fix_sdl_bugs
Feb 28, 2018
Merged

Cijo Thomas (cijothomas) merged 13 commits into
developfrom
cithomas/fix_sdl_bugs

Conversation

@cijothomas

Copy link
Copy Markdown
Contributor

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.

  • I ran Unit Tests locally.

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.

/// <summary>
/// Max length of context header key.
/// </summary>
public const int ContextHeaderKeyMaxLength = 50;

Copy link
Copy Markdown
Contributor Author

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;

Copy link
Copy Markdown
Contributor Author

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.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sergey Kanzhelev (@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.

@TimothyMothra

Copy link
Copy Markdown

I'm approving these changes. Most everything was copied verbatim from microsoft/ApplicationInsights-dotnet-server#810

@cijothomas
Cijo Thomas (cijothomas) merged commit 63d5f7d into develop Feb 28, 2018
@cijothomas
Cijo Thomas (cijothomas) deleted the cithomas/fix_sdl_bugs branch March 29, 2018 19:04
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants