Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / System.ServiceModel.Discovery / System / ServiceModel / Discovery / UdpDiscoveryMessageFilter.cs / 1305376 / UdpDiscoveryMessageFilter.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.ServiceModel.Discovery { using System.ServiceModel.Channels; using System.ServiceModel.Dispatcher; // This class provides a mitigration to the DDOS threat when using Discovery APIs with // UDP multicast transport. // // The Probe and Resolve request are sent multicast and are not secure. An attacker can launch // a third party distributed DOS attack by setting the address of the third party in the ReplyTo // header of the Probe and Resolve requests. To mitigate this threat this behavior drops the // message that have ReplyTo set to a value that is not annonymous by setting appropriate // message filter. // class UdpDiscoveryMessageFilter : MessageFilter { MessageFilter innerFilter; public UdpDiscoveryMessageFilter(MessageFilter innerFilter) { if (innerFilter == null) { throw FxTrace.Exception.ArgumentNull("innerFilter"); } this.innerFilter = innerFilter; } public MessageFilter InnerFilter { get { return this.innerFilter; } } public override bool Match(Message message) { if (message == null) { throw FxTrace.Exception.ArgumentNull("message"); } if (InnerFilter.Match(message)) { bool isMatch = ((message.Headers.ReplyTo == null) || (message.Headers.ReplyTo.IsAnonymous)); if (!isMatch && TD.DiscoveryMessageWithInvalidReplyToIsEnabled()) { TD.DiscoveryMessageWithInvalidReplyTo(message.Headers.MessageId.ToString()); } return isMatch; } return false; } public override bool Match(MessageBuffer buffer) { if (buffer == null) { throw FxTrace.Exception.ArgumentNull("buffer"); } return this.Match(buffer.CreateMessage()); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Padding.cs
- DataServiceProcessingPipelineEventArgs.cs
- BindingContext.cs
- ProxyElement.cs
- GuidTagList.cs
- DispatcherExceptionFilterEventArgs.cs
- SiteMapProvider.cs
- ZipPackagePart.cs
- SingleAnimation.cs
- WebRequestModulesSection.cs
- InvokePatternIdentifiers.cs
- CharacterString.cs
- DelegatingHeader.cs
- Timeline.cs
- SequenceNumber.cs
- ReflectionServiceProvider.cs
- SafeRsaProviderHandle.cs
- DocumentAutomationPeer.cs
- ThemeDictionaryExtension.cs
- Message.cs
- AnimationLayer.cs
- XmlHelper.cs
- PrintPreviewGraphics.cs
- GridViewPageEventArgs.cs
- DrawTreeNodeEventArgs.cs
- Page.cs
- DataGridViewCellPaintingEventArgs.cs
- WsdlHelpGeneratorElement.cs
- KerberosSecurityTokenParameters.cs
- Int32AnimationUsingKeyFrames.cs
- ConfigXmlElement.cs
- ButtonRenderer.cs
- Transform.cs
- DataBinding.cs
- SecurityRuntime.cs
- OrderedDictionary.cs
- _SafeNetHandles.cs
- WebPartDisplayModeEventArgs.cs
- ControlAdapter.cs
- WindowsGraphics.cs
- DeferredTextReference.cs
- DomainLiteralReader.cs
- OracleCommandSet.cs
- CodeDirectiveCollection.cs
- ToolboxBitmapAttribute.cs
- CodeSubDirectoriesCollection.cs
- CultureTable.cs
- EncoderExceptionFallback.cs
- RowBinding.cs
- GenericsInstances.cs
- BasicKeyConstraint.cs
- WindowsListViewItemCheckBox.cs
- TemplateControlBuildProvider.cs
- VarInfo.cs
- TextTrailingWordEllipsis.cs
- ObjectView.cs
- Image.cs
- GuidTagList.cs
- EFColumnProvider.cs
- ClassData.cs
- namescope.cs
- HttpModulesSection.cs
- ValidateNames.cs
- SynthesizerStateChangedEventArgs.cs
- MenuItem.cs
- EventDescriptor.cs
- HierarchicalDataSourceConverter.cs
- FontStretchConverter.cs
- SQLDecimalStorage.cs
- AppSettingsReader.cs
- SafeTimerHandle.cs
- RemotingConfiguration.cs
- Repeater.cs
- FastPropertyAccessor.cs
- DrawingGroup.cs
- IOException.cs
- CodeDirectoryCompiler.cs
- ExecutionContext.cs
- BufferedGraphicsManager.cs
- IgnoreFileBuildProvider.cs
- DataSetUtil.cs
- DrawingBrush.cs
- RevocationPoint.cs
- MetadataPropertyvalue.cs
- EndpointAddress.cs
- LeafCellTreeNode.cs
- TextEditorParagraphs.cs
- CustomErrorCollection.cs
- WindowsTooltip.cs
- HwndHostAutomationPeer.cs
- DocumentGridPage.cs
- Int32RectValueSerializer.cs
- ServiceModelEnumValidatorAttribute.cs
- StringDictionaryCodeDomSerializer.cs
- WsatEtwTraceListener.cs
- GeneralTransformGroup.cs
- PersonalizationProvider.cs
- SqlInternalConnectionSmi.cs
- ConfigurationValidatorAttribute.cs
- NavigationPropertyEmitter.cs