Close
    Search Search

    Contexto de segurança

    Contexto de segurança

    Os scripts no Roblox têm uma identidade de thread que indica qual acesso de segurança eles têm à API de script. Alguns membros da classe na API de script só podem ser usados ​​por scripts que têm a permissão necessária.


    Conteúdo

    • 1 identidades
    • 2 permissões
    • 3 funções
    • 4 máquinas virtuais
    • 5 restrições adicionais
    • 6 Veja também
    • 7 notas

    Identidades

    Uma identidade de thread é uma identidade (um inteiro) dada a uma thread que indica quais permissões ela possui.


    A identidade de um thread pode ser encontrada usando a função printidentity. Esta função irá imprimir a identidade da thread, prefixada pelo último argumento dado a ela se for uma string ou um número, "(null)" caso contrário, e um espaço. Se nenhum argumento for fornecido a ele, será prefixado por "A identidade atual é", seguido por um espaço.

    Exemplo Em um script com identidade 2, printidentity () mostraria que a identidade atual é 2 na saída.

    A identidade de um thread geralmente depende de onde ele vem. Por exemplo, os threads executados como plug-ins têm uma identidade 6, os threads que executam o código da barra de comando ou a opção "executar script" têm uma identidade 5 e os scripts e scripts locais geralmente têm uma identidade 2. [nota 1]


    Identidades
    Identidade Descrição
    0 Tópicos anônimos
    1 Ações iniciadas pelo usuário no Roblox Studio
    2 Objetos BaseScript em qualquer DataModel
    3 Objetos BaseScript em qualquer DataModel, em um local criado por Roblox
    4 Objetos BaseScript em qualquer DataModel, se forem de autoria de Roblox
    5 Barra de comando do Studio, "Execute Script", parâmetro de linha de comando script
    6 Plug-ins do Studio, COM API
    7 API de serviço da web
    8 Recebendo dados via replicação

    Permissões

    Cada propriedade, método, evento ou retorno de chamada na API de script pode exigir uma permissão. As permissões existentes são PluginSecurity, RobloxPlaceSecurity, LocalUserSecurity, WritePlayerSecurity, RobloxScriptSecurity, RobloxSecurity, TestLocalUserSecurity, ScriptWriteRestricted: [NotAccessibleSecurity] e ScriptWriteRestricted: [PluginSecurity]. Todos os tópicos têm acesso a membros que não requerem permissão.


    Permissões
    Permissão Descrição
    nenhum Qualquer identidade pode acessar esse recurso, incluindo scripts no jogo.
    Plugin Segundo nível de acesso mais baixo, logo acima do script do jogo.
    RobloxPlace Locais criados pela Roblox, onde os scripts são mais confiáveis ​​e os recursos preliminares são permitidos.
    LocalUser Permissão fora do jogo, geralmente para Roblox Studio.
    WritePlayer Permissões para alterar o nome do jogador, ID do usuário, etc.
    RobloxScript Um script, como um CoreScript, que é executado dentro de um jogo.
    Roblox Mais alto nível de permissão.
    TestLocalUser Em compilações de teste, isso é equivalente a nenhuma permissão, mas em compilações regulares é equivalente a LocalUser.

    papéis

    A tabela abaixo mostra quais permissões estão associadas a cada identidade.


    papéis
    Identidade Permissões
    0 nenhum
    1 Plugin, RobloxPlace, LocalUser
    2 nenhum
    3 RobloxPlace
    4 Plugin, RobloxPlace, LocalUser, RobloxScript
    5 Plugin, RobloxPlace, LocalUser
    6 (construção de estúdio) Plugin
    6 (versão não de estúdio) Todas as permissões
    7 Todas as permissões
    8 RobloxPlace, WritePlayer, RobloxScript
    Algo mais Nenhum, mais uma falha de afirmação

    Máquinas virtuais

    Threads com identidades diferentes podem ser executados com diferentes máquinas virtuais Lua, de modo que os scripts do usuário não sejam misturados com os scripts criados por Roblox. Atualmente, existem apenas duas máquinas virtuais, uma para CoreScripts e outras threads que têm acesso RobloxScript e outra para todas as outras threads. Em compilações de estúdio, há uma terceira máquina virtual usada para plug-ins de estúdio.



    Restrições adicionais

    Se a propriedade RobloxLocked de um objeto for verdadeira, apenas scripts com a permissão Plugin serão capazes de indexar sinais e filhos do objeto, definir suas propriedades ou atribuir seus retornos de chamada, chamar funções de produção do objeto, alterar o pai dos filhos do objeto ou crie objetos com o objeto como pai usando Instance.new (classe, pai). Além disso, os scripts que não têm essa permissão não poderão chamar funções não produtivas do objeto, a menos que ele não seja descendente de CoreGui. Esta propriedade é usada, entre outras coisas, para objetos GUI criados por CoreScripts.

    Veja também

    • Lista de membros por segurança

    Notas

    1. ↑ Eles podem ter uma identificação 3 quando executados em um jogo criado pelo Roblox e uma identificação 4 quando estiverem na lista de permissões do Roblox.
    Adicione um comentário do Contexto de segurança
    Comentário enviado com sucesso! Vamos analisá-lo nas próximas horas.