Skip to content
This repository has been 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
merged 13 commits into from
Feb 28, 2018

Conversation

cijothomas
Copy link
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
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
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
Member

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
Member

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