On 30/04/2015 02:24, Yasuo Ohgaki wrote:
"Type hints" have never been hints.  The wording is a misnomer.  Try to
pass an int to a parameter declared as array, for instance.

I understand how it worked and how it will.
"hint" sounds a little misleading. Since we named it already, we may follow
the semantics.

Or, since we chose the semantics already, we may consider better names (see on-going discussion on PHP-DOC list, for example).


A fatal error wouldn't constitute a DoS vulnerability, would it?

Attacker may inject huge ID value and/or they may simply access
web sites to reach 2 billion limit, for example.

That's not a DoS vector unless you've also done something else wrong, it's just an embarassing error like many others. A lot of the time, the DB will overflow first anyway, because an SQL "int" is signed 32-bit. Hell, YouTube had a 32-bit int for number of views until Gangnam Style overflowed it!

Sure, if a user can somehow insert custom data into a BigInt DB column, via a 32-bit webserver, without causing the error on the way in, but in such a way that other users would end up retrieving that record when they tried to access the site, and it was then run through a function with an "int" type annotation you'd have a Denial of Service. That's hardly "PHP 7 broke my website", though.

Regards,

--
Rowan Collins
[IMSoP]


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

Reply via email to