> In many ways, defining a built-in function e($string, $context) would 
> fulfil most of the above.

If things are so easy, why does so much code exist with XSS problems?

Regards
Thomas

Rowan Collins wrote on 27.07.2016 22:57:

> On 26/07/2016 14:15, Michael Vostrikov wrote:
>> Ok. Just ask you, why people ask the same question again since the time PHP
>> was created? Why almost all feature requests mentioned in RFC are about an
>> easy way to call htmlspecialchars()? You can vote up or down, I just want
>> to get an official result about this feature. I think, it can be considered
>> as official answer to community, to those people from community who would
>> like to use default escaping mechanism in PHP.
> 
> Hi Michael,
> 
> I think you and I are mostly going in circles at this point, so I'm 
> going to refrain from blow-by-blow responses and sum up my thinking on 
> this RFC.
> 
> Overall, I think there is some merit to the idea, but I think the detail 
> is important.
> 
> The aim in my mind would be to make escaping easier to do right, for 
> people who aren't already using a framework or templating engine with 
> its own solution.
> 
> - Without an actual implementation, the feature wouldn't be useful to 
> those people.
> - Configurability should be a long way down the list of priorities, for 
> the same reason.
> - I think contexts other than HTML should be included to remind users 
> that they exist, but HTML could be the default.
> - Contexts should be stackable/nestable, *without the user writing any 
> extra code*.
> - The syntax should be easy to read as well as easy to write. How easy 
> it is to implement is a low priority.
> 
> The current implementation doesn't seem to share these priorities; it 
> feels like a building block for framework developers, who probably have 
> their own solutions already.
> 
> 
> A few mentions have been made of Twig, which is known for its 
> comprehensive escaping support; it goes a lot further than the fact that 
> "|e" is an alias for "|escape('html')":
> 
> - you can define automatic escaping for a whole file or a block within a 
> file
> - there is an extra filter to skip the automatic escaping (not the same 
> as unescaping)
> - the above can be done with any "context", but the default is HTML
> - a "context" is not just the argument to a single all-powerful "escape" 
> function; you can register a new context by name, without reimplementing 
> any of the existing functionality
> - other template functions can say that their output shouldn't be 
> escaped, or that their input should be pre-escaped
> - other functionality of the system is aware of these notions, and 
> designed to behave sensibly
> 
> I don't think there's any way PHP can ever reach that level of 
> sophistication, because most of the language knows nothing about 
> "context"; the feature we build in is only ever going to be a simple 
> short-hand for some basic function calls.
> 
> 
> In many ways, defining a built-in function e($string, $context) would 
> fulfil most of the above. A dedicated syntax might make it a little 
> easier to type, and could handle nested contexts more elegantly. The 
> ability to register additional contexts and take advantage of the syntax 
> and nesting could be a simple addition. Any more complicated than that, 
> and you're fighting a losing battle against dedicated templating engines.
> 
> That's my opinion, anyway. It is just an opinion, and you're free to 
> disagree with it, but hopefully my reasoning is clear.
> 
> Regards,
> 
> -- 
> Rowan Collins
> [IMSoP]
> 
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 


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

Reply via email to