On Wed, Sep 10, 2014 at 3:32 AM, Andrea Faulds <a...@ajf.me> wrote:

> I initially thought that I’m not really against removing them really, but
> I think we should have a script to convert them first. Because someone,
> somewhere, is gonna need it.
>

I have added a small script for porting prehistoric tags, see
https://wiki.php.net/rfc/remove_alternative_php_tags#porting_tool

But then I’ve thought more about it. I’m usually OK with certain BC breaks,
> I just don’t like this specific one. It doesn’t affect me, but, well, I
> don’t see the point. It doesn’t really help language consistency or
> anything, (OK, sure, only two sets of delimeters now, but it’s not a big
> deal like some other things are), and you’ll force people to update every
> file in their codebase if they’re affected, assuming people who use
> alternative tags use them everywhere.


In the context of a recent discussion on this list about the nature of
different BC break, this is the very best BC break that is possible. It is
trivial to detect statically and it is trivial to fix statically. Nobody
needs to "update every file in their codebase" manually.


> There’s also a security issue here. If someone uses PHP 7 with a codebase
> that has these alternative tags, your code is now visible to users instead
> of the output, which might include configuration details like database
> passwords or password hash salts. It’s also possible that people won’t
> notice this is happening if they only used these alternative tags in a few
> obscure places.
>

I am amenable to adding the asp_tags option to the
http://lxr.php.net/xref/PHP_TRUNK/main/main.c#2339 list, which will trigger
a fatal error on startup if it is enabled - that should make sure that
anyone using those is aware of the problem (we can also add it to the
deprecated list in 5.7, should we have such a release). Doesn't apply to
<script> of course.

Anyway, to me this seems like a no-brainer. Given the nature of the change
(trivial to detect + fix) this is a lot safer than pretty much all the
other BC breaks we've been talking about (like minor changes to integer
semantics). If we can't do this change, then I don't think there is
anything we *can* change.

Nikita

Reply via email to