Segundo a documentação do php.net,
If you convert an object to an array, you get the properties (member variables) of that object as the array's elements. The keys are the member variable names with a few notable exceptions: private variables have the class name prepended to the variable name; protected variables have a '*' prepended to the variable name. These prepended values have null bytes on either side. This can result in some unexpected behaviour.(Página original)
Isso significa que o usuário de uma interface pode explorar (exploit) essa funcionalidade para obter acesso a membros aos quais ele não deveria ter acesso?
Palavras-chave: PHP, PHP (Arrays), PHP (Conversão para array), PHP (Exploits)

Comentários
Renato Callado Borges escreveu:
Acabo de ler que
Zandstra, Matt. Teach Yourself PHP in 24h. SAMS:Indianapolis, 2000. pp.128-9.
De modo que o princípio adotado pelo PHP4 é o de que todos podem acessar tudo. No mesmo item do livro o autor fala que não existem private, protected, etc, mas como no php.net fala-se disso suponho que é um acréscimo do php5.
Agora, suponho que muitas funções do Stoa tenham como argumentos dados entrados pelos usuários. Estes dados são validados, ie, verifica-se antes de adicionar uma informação se esta tem formato esperado (ie, número é número, imagem é imagem, etc?). Vou dar uma olhada no código e complemento depois.
Renato Callado Borges escreveu:
Da documentação do php no php.net, "Chapter 30. User Submitted Data":
...A documentação do mesmo site tem outros tópicos de segurança.