PHP 8.5.2 Released!

Diferenças do Lua Padrão

O LuaSandbox fornece um ambiente isolado (caixa de areia) que difere em alguns aspectos do Lua 5.1 padrão.

Recursos que não estão disponíveis

  • dofile(), loadfile() e o pacote io, pois eles permitem acesso direto ao sistema de arquivos. Se necessário, o acesso ao sistema de arquivos deve ser feito por meio de funções de retorno PHP.
  • O pacote package, incluindo require() e module(), pois depende muito do acesso direto ao sistema de arquivos. Uma reescrita Lua pura, como a usada na extensão MediaWiki Scribunto, pode ser usada em vez disso.
  • load() e loadstring(), para permitir análise estática do código Lua.
  • print(), já que ele envia para a saída padrão. Se necessário, a saída deve ser feita via funções de retorno PHP.
  • A maior parte do pacote os, pois permite a manipulação do processo e a execução de outros processos.
    • os.clock(), os.date(), os.difftime() e os.time() permanecem disponíveis.
  • A maior parte do pacote debug, pois permite a manipulação do estado Lua e metadados de maneiras que podem quebrar o isolamento.
    • debug.traceback() permanece disponível.
  • string.dump(), pois pode expor dados internos.
  • collectgarbage(), gcinfo() e o pacote coroutine não foram revisados ​​quanto à segurança.

Recursos que foram modificados

  • pcall() e xpcall() não conseguem capturar certos erros, particularmente erros de tempo limite.
  • tostring() não inclui endereços de ponteiros.
  • string.match() foi corrigido para limitar a profundidade da recursão e verificar periodicamente se há um tempo limite.
  • math.random() e math.randomseed() foram substituídos por versões que não compartilham estado com rand() do PHP.
  • Os metamétodos __pairs e __ipairs do Lua 5.2 são suportados por pairs() e ipairs().
adicionar nota

Notas de Usuários

Não há notas de usuários para esta página.
To Top