I think it's best to create a rfc and put it to vote: 
https://wiki.php.net/rfc/howto

Having <?~ makes it a lot easier to do code reviews.
I also think majority of use cases is <?~, other parts can use json_encode(), 
filter_var() and other filters/escapers.

Regards
Thomas

Михаил Востриков wrote on 19.06.2016 10:38:

> Guys, wait please) I don't suggest escaping package for all contexts and
> for all cases. This is not what I described in my first letter. My point is
> that the main job of echo operator "<?= ?>" is output an unknown value from
> database to an HTML environment. So in all this places we should copy-pase
> the call of htmlspecialchars() to prevent XSS. There are many projects
> which is written on custom engines, or frameworks, or CMS, and they does
> not have any templating engine, and there is no possibility to rewrite many
> working PHP templates to Twig, or Smarty, or something else.
> 
> I suggest new simple operator "<?~ ?>" which will automatically wrap the
> output value in htmlspecialchars(). It is intended specially for HTML, not
> for XML or JS. It does not require any php.ini settings, new classes or
> constants. The reason for implementing it is the same as for implementing
> "??", or "<=>", or "<?= ?>" operators - make better usual and often
> operations, descrease copy-paste, and increase security. I can implement it
> myself and send a patch.
> 
> What do you think?
> 
> 
> 2016-06-19 12:59 GMT+05:00 Marco Pivetta <ocram...@gmail.com>:
> 
>> On 19 June 2016 at 09:53, Niklas Keller <m...@kelunik.com> wrote:
>>
>>> Rasmus Schultz <ras...@mindplay.dk> schrieb am Sa., 18. Juni 2016, 17:44:
>>>
>>> Did you know that you can alias namespaces, too?
>>>
>>> <?php use My\Stuff\Escape as esc; ?>
>>> <?=esc\html($str)?>
>>>
>>> You can always add more functions to a namespace even spread accross
>>> multiple files.
>>>
>>
>> Pro-userland: quick reminder that a `composer update` is much quicker than
>> a full system PHP version upgrade.
>>
>> I'd rather rely on an escaping package written in PHP, easier to maintain
>> and quicker to upgrade, than something that will likely use some obscure
>> shared library (or the PHP binary itself) that may not be upgraded for
>> weird reasons (it's shared, remember?).
>>
>> I know that you put a lot of effort in security maintenance, but it's
>> still easier to deal with this stuff in userland in any case, and most
>> templating languages in common frameworks already inject helpers in the
>> script context in order to achieve quick, effective and context-aware (no
>> automatic context detection) escaping.
>>
>> Marco Pivetta
>>
>> http://twitter.com/Ocramius
>>
>> http://ocramius.github.com/
>>
>>
> 


-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to