Re: [hybi] Extensibility mechanisms?

John Tamplin <jat@google.com> Thu, 22 July 2010 14:12 UTC

Return-Path: <jat@google.com>
X-Original-To: hybi@core3.amsl.com
Delivered-To: hybi@core3.amsl.com
Received: from localhost (localhost [127.0.0.1]) by core3.amsl.com (Postfix) with ESMTP id 017B53A69B1 for <hybi@core3.amsl.com>; Thu, 22 Jul 2010 07:12:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.976
X-Spam-Level:
X-Spam-Status: No, score=-105.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-4, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.32]) by localhost (core3.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id q+lhd70ec9lw for <hybi@core3.amsl.com>; Thu, 22 Jul 2010 07:12:08 -0700 (PDT)
Received: from smtp-out.google.com (smtp-out.google.com [216.239.44.51]) by core3.amsl.com (Postfix) with ESMTP id F0BFE3A6A97 for <hybi@ietf.org>; Thu, 22 Jul 2010 07:12:07 -0700 (PDT)
Received: from hpaq12.eem.corp.google.com (hpaq12.eem.corp.google.com [172.25.149.12]) by smtp-out.google.com with ESMTP id o6MECNJm007213 for <hybi@ietf.org>; Thu, 22 Jul 2010 07:12:23 -0700
DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1279807943; bh=/6In7YxRKBAfOJzi3TNwiEP83bI=; h=MIME-Version:In-Reply-To:References:From:Date:Message-ID:Subject: To:Cc:Content-Type; b=HGY+ADzn67b36fVKsM0NtAKD/ucY75n+GqOpLw8L0WZo6twC3qAwJHv8PsirqtVmX CeeEEmUF9Qv3nzvvaOcNA==
DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=mime-version:in-reply-to:references:from:date:message-id: subject:to:cc:content-type:x-system-of-record; b=ert42AuzeWuXafYZfS6yp2Q304jOyErg5wshebUpe1joDF8txeBBYsTwIxEdFOMGB RKsIOYSaRe6eO0x6uXMIg==
Received: from yxn35 (yxn35.prod.google.com [10.190.4.99]) by hpaq12.eem.corp.google.com with ESMTP id o6MECLSn029808 for <hybi@ietf.org>; Thu, 22 Jul 2010 07:12:22 -0700
Received: by yxn35 with SMTP id 35so2803535yxn.4 for <hybi@ietf.org>; Thu, 22 Jul 2010 07:12:21 -0700 (PDT)
Received: by 10.151.40.7 with SMTP id s7mr4147606ybj.81.1279807941163; Thu, 22 Jul 2010 07:12:21 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.151.60.3 with HTTP; Thu, 22 Jul 2010 07:12:01 -0700 (PDT)
In-Reply-To: <20100722140726.GD12582@1wt.eu>
References: <Pine.LNX.4.64.1007212153110.7242@ps20323.dreamhostps.com> <AANLkTiku76oSucTNDFdwgsFBNFa_cCpC-YktTnMfX47-@mail.gmail.com> <4C479130.4020500@caucho.com> <AANLkTikLDjBP-Xs5t6TxmJuq4nG8jwThQ=n34B4cEmup@mail.gmail.com> <4C479CE4.6070805@caucho.com> <AANLkTims1er0Rbv0ysP4gRs1Kd0He8hapHeJ3nON=JQa@mail.gmail.com> <4C47C5B0.3030006@caucho.com> <AANLkTi=ND-FOH8OoD=TCbiyeSZ-h0LhxQBXN5w-2hfvj@mail.gmail.com> <20100722055452.GL7174@1wt.eu> <F412C956-038F-400D-A431-C42B4C7B829C@apple.com> <20100722140726.GD12582@1wt.eu>
From: John Tamplin <jat@google.com>
Date: Thu, 22 Jul 2010 10:12:01 -0400
Message-ID: <AANLkTin0Sg_5aFUBAWS0mSo95FMXjPwaChUrTtEw6r6D@mail.gmail.com>
To: Willy Tarreau <w@1wt.eu>
Content-Type: multipart/alternative; boundary="00151750ec12b6bd6a048bfa8176"
X-System-Of-Record: true
Cc: Hybi <hybi@ietf.org>
Subject: Re: [hybi] Extensibility mechanisms?
X-BeenThere: hybi@ietf.org
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: Server-Initiated HTTP <hybi.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/hybi>
List-Post: <mailto:hybi@ietf.org>
List-Help: <mailto:hybi-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/hybi>, <mailto:hybi-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 22 Jul 2010 14:12:10 -0000

On Thu, Jul 22, 2010 at 10:07 AM, Willy Tarreau <w@1wt.eu> wrote:

> > 1) Hostile JS code running in the browser may use the browser's WebSocket
> client code to try to attack existing HTTP resources, if it can make a
> request that looks sufficiently like HTTP.
>
> Maybe I'm mistaken, but why couldn't such JS code simply make use of the
> browser's HTTP client to do so ? Posting a form, reloading an image from
> a given URL or making an XMLHttpRequest seems perfectly possible right now,
> so trying to do that via the WebSocket code would bring nothing at all.


JS is limited in how it can influence all the HTTP headers in the request,
and is also bound by same-origin policy.


> > 3) Hostile JS code running in the browser may use the browser's HTTP
> client code (e.g. via XMLHttpRequest) to try to attack newly created
> WebSocket servers, if it can make a request that looks sufficiently like
> WebSocket.
>
> The same is true here : why would the JS code try to use the normal HTTP
> client if the browser supports WebSocket, with which the code would be
> able to have finer control over its attack ?


The JS cannot control anything but the data contents of the message, so is
limited in what it can do to the headers of the initial request or the
framing.

-- 
John A. Tamplin
Software Engineer (GWT), Google