[Modify] Add some checks for the Host header
This commit is contained in:
		@@ -75,6 +75,8 @@ namespace WebSocketSharp.Net
 | 
			
		||||
    private Guid                   _requestTraceIdentifier;
 | 
			
		||||
    private Uri                    _url;
 | 
			
		||||
    private Uri                    _urlReferrer;
 | 
			
		||||
    private string                 _userHostName;
 | 
			
		||||
    private bool                   _userHostNameSet;
 | 
			
		||||
    private string[]               _userLanguages;
 | 
			
		||||
    private bool                   _websocketRequest;
 | 
			
		||||
    private bool                   _websocketRequestSet;
 | 
			
		||||
@@ -541,7 +543,7 @@ namespace WebSocketSharp.Net
 | 
			
		||||
    /// </value>
 | 
			
		||||
    public string UserHostName {
 | 
			
		||||
      get {
 | 
			
		||||
        return _headers["Host"];
 | 
			
		||||
        return _userHostName;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -612,6 +614,23 @@ namespace WebSocketSharp.Net
 | 
			
		||||
      _headers.InternalSet (name, val, false);
 | 
			
		||||
 | 
			
		||||
      var lower = name.ToLower (CultureInfo.InvariantCulture);
 | 
			
		||||
      if (lower == "host") {
 | 
			
		||||
        if (_userHostNameSet) {
 | 
			
		||||
          _context.ErrorMessage = "Invalid Host header";
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (val.Length == 0) {
 | 
			
		||||
          _context.ErrorMessage = "Invalid Host header";
 | 
			
		||||
          return;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        _userHostName = val;
 | 
			
		||||
        _userHostNameSet = true;
 | 
			
		||||
 | 
			
		||||
        return;
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      if (lower == "content-length") {
 | 
			
		||||
        if (_contentLengthSet) {
 | 
			
		||||
          _context.ErrorMessage = "Invalid Content-Length header";
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user