- From: gaz Heyes <gazheyes@gmail.com>
- Date: Mon, 27 Sep 2010 15:40:47 +0100
- To: "Steingruebl, Andy" <asteingruebl@paypal-inc.com>
- Cc: "public-web-security@w3.org" <public-web-security@w3.org>
- Message-ID: <AANLkTik6aXgZ_q=itrhFewo=oQ9deaqBX8GmVTOj1Tsd@mail.gmail.com>
On 27 September 2010 15:34, Steingruebl, Andy <asteingruebl@paypal-inc.com>wrote: > > From: public-web-security-request@w3.org [mailto: > public-web-security-request@w3.org] On Behalf Of gaz Heyes > > > I consider the function to be badly designed (although an excellent > function overall). I've provided a JavaScript patch until (if ever) > > browsers change it's behaviour. I also consider Mozilla's third argument > a really bad idea as this unsupported > > by the other browsers at this time and adding flags just seems pretty > messy and adds to the confusion. > > Let's say for a second that browsers decided to change the default > behavior. > > 1. Any idea how many sites/things that would break? > 2. Any idea whether it would cause more security problems than it fixes? > 3. Any ways to make that change and still be backwards compat, etc? Maybe > look for certain behavior, page creation time, etc? > > I' not saying you're wrong that developers are using the current version > incorrectly, I'm just not sure how we get to the right state without > breaking things along the way. Any suggestions? > In my blog post I provide some code to change existing behaviour, a feature test could be added to replace the default behaviour for older browsers like so:- if('aa'.replace('a','')) { String.prototype.replace = (function(r){ return function(find, replace, replaceOnce) { if(typeof find == 'string' && !replaceOnce) { find = r.apply(find, [/[\[\]^$*+.?(){}\\\-]/g,function(c) { return '\\'+c; }]); find = new RegExp(find, 'g'); } else if(typeof find == 'object' && !replaceOnce && !find.global) { find = new RegExp(find.source, 'g'); } return r.apply(this, [find,replace]); } })(String.prototype.replace); alert('aaaabbbbb'.replace(/a/,'')) }
Received on Monday, 27 September 2010 14:41:19 UTC