Hi Pierre,

On Mon, Mar 30, 2015 at 10:54 AM, Pierre Joye <pierre....@gmail.com> wrote:

> Same effects but totally unrelated topics. All functions dealing with
> large external numbers had the same issues, since ever. It has nothing
> to do with STH.
>

Yes, it is.
Developers make casting mistakes like this even when they are used to
strict typing.

This make me worry about wrong casting usage with PHP7.
For example,

$db->findById($id);

The method prototype should be

function findById(string $id)

to be correct.
I think there will be many users write wrong code such as

function findById(int $id)

One may argue most systems are 64 bit anyway and would not be much issue.
However, many IoT devices uses 32 bit OS still. 32 bit systems cannot be
ignored yet.

User will cast $id to int without thinking the consequence. This could
create
security hole as (int)$id for string results in 0/negative value.

Casting external values to int/float is wrong and evil simply. Current type
hint
encourages/requires casts even if users are not realizing the consequence
fully.

We do make mistake like this bug. We cannot assume PHP user will not.

Regards,

--
Yasuo Ohgaki
yohg...@ohgaki.net

Reply via email to