Files
archived-doc-pt-br/reference/luasandbox/differences.xml

122 lines
4.3 KiB
XML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9c40251a81d8f369c184e83fd142c4cc656a7261 Maintainer: leonardolara Status: ready -->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="reference.luasandbox.differences">
<title>Diferenças do Lua Padrão</title>
<simpara>
O LuaSandbox fornece um ambiente isolado (caixa de areia) que difere em alguns aspectos do Lua 5.1 padrão.
</simpara>
<simplesect xml:id="reference.luasandbox.differences.unavailable">
<title>Recursos que não estão disponíveis</title>
<itemizedlist>
<listitem>
<simpara>
<literal>dofile()</literal>, <literal>loadfile()</literal> e o pacote <literal>io</literal>, 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.
</simpara>
</listitem>
<listitem>
<simpara>
O pacote <literal>package</literal>, incluindo <literal>require()</literal> e <literal>module()</literal>, 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.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>load()</literal> e <literal>loadstring()</literal>, para permitir análise estática do código Lua.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>print()</literal>, 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.
</simpara>
</listitem>
<listitem>
<simpara>
A maior parte do pacote <literal>os</literal>, pois permite a manipulação do processo e a execução de outros processos.
</simpara>
<itemizedlist>
<listitem>
<simpara>
<literal>os.clock()</literal>, <literal>os.date()</literal>, <literal>os.difftime()</literal> e <literal>os.time()</literal> permanecem disponíveis.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>
A maior parte do pacote <literal>debug</literal>, pois permite a manipulação do estado Lua e metadados de maneiras que podem quebrar o isolamento.
</simpara>
<itemizedlist>
<listitem>
<simpara>
<literal>debug.traceback()</literal> permanece disponível.
</simpara>
</listitem>
</itemizedlist>
</listitem>
<listitem>
<simpara>
<literal>string.dump()</literal>, pois pode expor dados internos.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>collectgarbage()</literal>, <literal>gcinfo()</literal> e o pacote <literal>coroutine</literal> não foram revisados quanto à segurança.
</simpara>
</listitem>
</itemizedlist>
</simplesect>
<simplesect xml:id="reference.luasandbox.differences.modified">
<title>Recursos que foram modificados</title>
<itemizedlist>
<listitem>
<simpara>
<literal>pcall()</literal> e <literal>xpcall()</literal> não conseguem capturar certos erros, particularmente erros de tempo limite.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>tostring()</literal> não inclui endereços de ponteiros.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>string.match()</literal> foi corrigido para limitar a profundidade da recursão e verificar periodicamente se há um tempo limite.
</simpara>
</listitem>
<listitem>
<simpara>
<literal>math.random()</literal> e <literal>math.randomseed()</literal> foram substituídos por versões que não compartilham estado com <literal>rand()</literal> do PHP.
</simpara>
</listitem>
<listitem>
<simpara>
Os metamétodos <literal>__pairs</literal> e <literal>__ipairs</literal> do Lua 5.2 são suportados por <literal>pairs()</literal> e <literal>ipairs()</literal>.
</simpara>
</listitem>
</itemizedlist>
</simplesect>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->