On Fri, Nov 19, 2010 at 10:36 PM, Philip Olson <phi...@roshambo.org> wrote: > > On Nov 19, 2010, at 6:45 PM, Stanley Sufficool wrote: >> On Fri, Nov 19, 2010 at 8:14 AM, Daniel Convissor >> <dani...@analysisandsolutions.com> wrote: >>> On Fri, Nov 19, 2010 at 04:41:48PM +0100, Ferenc Kovacs wrote: >>>> you can get pwn3d with magic_quotes_gpc = On >>> >>> That goes without saying. None the less, it will be problematic for PHP >>> to disable/remove a "security" feature that some people rely on. >> >> Well then +1 for making the setting throw depreciated PHP startup >> notifications when turned on with a link to suggested security >> practices for SQL, exec(), passthru(), and other sensitive functions >> benefiting from magic quotes. > > Linking to a document sounds reasonable, but we already provide an > E_DEPRECATED error when any magic quotes setting is enabled (as of 5.3.0), so > the probable question here is if we should disable MQ by default (in 5.4) and > remove it later (5.5 or 6.0), or simply remove it now. I lean towards > disabling by default in 5.4, and removing in 6.0. > >> Also throw an E_NOTICE depreciated for the magic_quotes_gpc() function >> as well for those that check if this setting is on/off. > > Punishing people who write compatible code feels wrong, so > get_magic_quotes_gpc() should never emit an error. Heck, this harmless > function might even exist in PHP 7. My guess is most people simply run > stripslashes() if On, rather than avoid superior escaping mechanisms.
I retract my assertion that get_magic_quotes_gpc() throw anything. ;-) > >> But please start the movement in the direction that this will be >> removed in the future. > > I\'m having a difficult time grasping the exact implications here, except > that a default value change mostly affects people without php.ini files. I\'m > not sure who those people are, or how they may end up using PHP 5.4, but > maybe a wiser old timer can predict this story. But for good measure: > > What we have already done with magic_quotes_gpc: > ------- > (Note: sister magic_quotes_runtime has always defaulted to Off) > > PHP 4, 5.0, 5.1, 5.2 > - Default (On) > - php.ini-dist (On) > - php.ini-recommended (Off) > > PHP 5.3 > - Default (On) > - php.ini-development (Off) > - php.ini-production (Off) > - E_DEPRECATED error when On > > Distributions/vendors: > - I\'m not sure which defaults they all use > > We\'ve recommended Off for a long time now (year ~2000) so should feel okay > with whatever decision is made. But, our main focus is handling clueless code > that magically works (sort of) thanks to magical quotes. Magic! FWIW, My SQL Server code doesn't magically work with this setting on, I just get a bunch of crappy "quote\\\\\\\\\\\'s " values after several iterations. > > Regards, > Philip > > -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php