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
cijothomas merged 13 commits intodevelopfrom
cithomas/fix_sdl_bugs
Feb 28, 2018
Merged

Enforce limits of values read from incoming headers and app id lookup#608
cijothomas merged 13 commits intodevelopfrom
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.

Copy link
Copy Markdown

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.

@TimothyMothra
Copy link
Copy Markdown

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

@cijothomas cijothomas merged commit 63d5f7d into develop Feb 28, 2018
@cijothomas 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