Re: Re: RFC: Implementing a core anti-XSS escaping class

From: Date: Wed, 19 Sep 2012 17:55:59 +0000
Subject: Re: Re: RFC: Implementing a core anti-XSS escaping class
References: 1 2 3 4 5 6 7 8  Groups: php.internals 
Request: Send a blank email to internals+get-63164@lists.php.net to get a copy of this message
Hi Michael, >> It feels like this is just using classes for the sake of using >> classes, adding an unnecessary layer of complexity (and discussion) >> for no real reason except that is the RFC authors preference. > > +1 > > First the discussion was filtering vs escaping. Now it is about how to implement it as a class > etc. > > I don't understand why people have any issue with it being a core procedural function. You > can call that from your OO code just fine. Just like any other core procedural function. I have never once expressed a problem with this being a set of procedural function. Not once. The RFC offers some suggested function signatures. So nobody has expressed any issues and nobody has insisted that you be required to use a class or object. > There is no reason it has to be OO. OO has to call procedural functions already (string > functions, array functions, curl, json, etc etc); but us procedural purists don't have to call > OO methods and classes if we don't need to (except now some of the DateTime IIRC which bugs me > :p) Then please - call the functions as defined in the RFC. > Anyway how hard is it to use something akin to the filter functions? That's what > constants/flags are for. The RFC addresses escaping, not input filtering. Yes, there is a fine line between them but the filter method requires constants, options, and we would then need to later in character encoding. The resulting mutation would be a step backwards in my opinion in guiding users towards the secure use of escaping in applications. > Call it str_escape(string, flags optional, encoding optional) and be done with it. Since it > won't be useful to have escape_var or escape_input type of differentiation and this seems like > it could just fit under the string family of functions (I am a fan of namespaced functions by > prefix) > > After that it seems like the discussion would be: > 1) do we even need encoding or is UTF8 just fine > 2) what are the flags to be defined for different escaping methods Correct encoding is essential. The entire planet does not use UTF-8, and UTF-8 is not the same as other encodings once you get over the theoretical perfection that should exist and meet the rebels: browsers. Please bear in mind that using the correct encoding has been preached for many many years as a minimum requirement in secure escaping for PHP. Paddy -- Pádraic Brady http://blog.astrumfutura.com http://www.survivethedeepend.com Zend Framework Community Review Team

« previous php.internals (#63164) next »