Privacidade e segurança para suplementos do Office
Segurança do processo
Os suplementos do Office são protegidos por um ambiente de tempo de execução de suplemento, um modelo de permissões com várias camadas e administradores de desempenho. Esta arquitetura protege a experiência do utilizador das seguintes formas.
O acesso à moldura de IU da aplicação cliente do Office é gerido.
Só é permitido acesso indireto ao thread de IU da aplicação cliente do Office.
As interações modais não são permitidas , por exemplo, as chamadas para JavaScript
alert
econfirm
prompt
métodos não são permitidas porque são modais.
Além disso, a arquitetura de runtime fornece as seguintes vantagens para garantir que um Suplemento do Office não pode danificar o ambiente do utilizador.
Isola o processo no qual o suplemento é executado.
Não exige substituição de .dll ou de .exe ou de componentes ActiveX.
Facilita a instalação e a desinstalação do suplemento.
E o uso de memória, CPU e recursos de rede por suplementos do Office é governável para garantir que o bom desempenho e a confiabilidade sejam mantidos.
Observação
Em alguns cenários, diferentes funcionalidades de um suplemento são executadas em runtimes separados. Para simplificar, este artigo utiliza o singular "runtime". Para obter mais informações, consulte Runtimes nos Suplementos do Office.
As secções seguintes descrevem resumidamente como a arquitetura de runtime suporta a execução de suplementos em clientes do Office em dispositivos baseados no Windows, em dispositivos Mac OS X e em browsers.
Clientes para dispositivos Windows e OS X
Nos clientes suportados para dispositivos de ambiente de trabalho e tablet, como o Excel no Windows e o Outlook no Windows (clássico) e no Mac, os Suplementos do Office são suportados através da integração de um componente em processo, o runtime de Suplementos do Office, que gere o ciclo de vida do suplemento e permite a interoperabilidade entre o suplemento e a aplicação cliente. A página da Web do suplemento em si é hospedada fora do processo. Num dispositivo windows de ambiente de trabalho ou tablet, a página Web do suplemento é alojada dentro de um controlo do Internet Explorer ou do Microsoft Edge que, por sua vez, está alojado num processo de runtime de suplemento que fornece isolamento de segurança e desempenho.
Nos ambientes de trabalho do Windows, o Modo Protegido no Internet Explorer tem de estar ativado para a Zona de Site Restrito. Ele geralmente está habilitado por padrão. Se estiver desabilitado, um erro ocorrerá quando você tentar iniciar um suplemento.
Num ambiente de trabalho macOS, a página Web do suplemento é alojada dentro de um processo de anfitrião de runtime webKit em sandbox que ajuda a fornecer um nível semelhante de segurança e proteção de desempenho.
O tempo de execução de Suplementos do Office gerencia a comunicação entre processos, a conversão de eventos e chamadas à API JavaScript em itens nativos, bem como o suporte de comunicação remota da interface do usuário para habilitar o suplemento a ser processado dentro do documento, em um painel de tarefas ou de forma adjacente a uma mensagem de e-mail, solicitação de reunião ou compromisso.
Clientes Web
Nos clientes Web suportados, os Suplementos do Office são alojados num iframe que é executado com o atributo sandbox HTML5. Não são permitidos componentes ActiveX nem a navegação na página principal do cliente Web. O suporte a Suplementos do Office é habilitado em clientes Web por meio da integração da API JavaScript para Office. De maneira semelhante aos aplicativos cliente de área de trabalho, a API JavaScript gerencia o ciclo de vida do suplemento e a interoperabilidade entre o suplemento e o cliente Web. Essa interoperabilidade é implementada por meio de uma infraestrutura especial de comunicação de mensagens de publicação entre quadros. A mesma biblioteca JavaScript (Office.js) que é usada em clientes de área de trabalho está disponível para interagir com o cliente Web. A figura seguinte mostra a infraestrutura que suporta suplementos no Office em execução no browser e os componentes relevantes (o cliente Web, iframe, runtime de Suplementos do Office e API JavaScript para Office) necessários para os suportar.
Integridade do suplemento no AppSource
Pode disponibilizar os seus Suplementos do Office ao público ao publicá-los no AppSource. O AppSource impõe as seguintes medidas para manter a integridade dos suplementos.
Requer que o servidor host de um Suplemento do Office sempre use o protocolo SSL para se comunicar.
Requer que um desenvolvedor forneça uma prova de identidade, um acordo contratual e uma política de privacidade compatível para enviar suplementos.
Dá suporte a um sistema de revisão pelo usuário para os suplementos disponíveis para promover uma comunidade autovigilante.
Experiências conectadas opcionais
Os usuários finais e administradores de TI podem desativar as experiências conectadas opcionais nos clientes móveis e na área de trabalho do Office. Para os Suplementos do Office, o impacto da desativação da definição Experiências ligadas opcionais é que os utilizadores já não podem aceder a suplementos ou à loja Microsoft 365 e Copilot através destes clientes. No entanto, determinados suplementos da Microsoft considerados essenciais ou críticos para a empresa e os suplementos implementados pelo administrador de TI de uma organização através da Implementação Centralizada continuarão disponíveis. Além disso, os suplementos e a loja Microsoft 365 e Copilot permanecem disponíveis no Outlook na Web, independentemente do estado da definição.
Para obter mais informações sobre o comportamento específico do Outlook, consulte Privacidade, permissões e segurança para suplementos do Outlook.
Tenha em atenção que, se um administrador de TI desativar a utilização de experiências ligadas no Office, tem o mesmo efeito nos suplementos que desativar apenas as experiências ligadas opcionais.
Lidar com as preocupações de privacidade dos usuários finais
Esta seção descreve a proteção oferecida pela plataforma de Suplementos do Office da perspectiva do cliente (usuário final) e fornece as diretrizes sobre como dar suporte às expectativas dos usuários e como manipular com segurança as PII (informações de identificação pessoal) dos usuários.
Perspectiva dos usuários finais
Os Suplementos do Office são criados usando tecnologias da Web que são executadas em um controle de navegador ou em um iframe. Por isso, o uso de suplementos é semelhante à navegação em sites na Internet ou na intranet. Os suplementos podem ser externos a uma organização (se adquirir o suplemento a partir do AppSource) ou internos (se adquirir o suplemento a partir de um catálogo de suplementos do Exchange Server, catálogo de aplicações do SharePoint ou partilha de ficheiros na rede de uma organização). Os suplementos têm acesso limitado à rede, e a maioria dos suplementos pode ler ou gravar no documento ou item de e-mail ativo. A plataforma de suplementos aplica certas restrições antes que um usuário ou administrador instale ou inicie um suplemento. Porém, como ocorre com qualquer modelo de extensibilidade, os usuários devem ser cuidadosos antes de iniciar um suplemento desconhecido.
Observação
Os utilizadores podem ver um pedido de segurança para confiar no domínio na primeira vez que um suplemento é carregado. Isto acontecerá se o anfitrião de domínio do suplemento estiver fora do domínio do Exchange no local ou do Office Online Server.
A plataforma de suplementos aborda as preocupações de privacidade dos utilizadores finais das seguintes formas.
Os dados comunicados com o servidor Web que hospeda um suplemento de conteúdo, do Outlook ou de painel de tarefas, bem como a comunicação entre o suplemento e quaisquer serviços Web que ele usa, devem ser criptografados usando o protocolo SSL.
Antes de um utilizador instalar um suplemento a partir do AppSource, o utilizador pode ver a política de privacidade e os requisitos desse suplemento. Além disso, os suplementos do Outlook que interagem com as caixas de correio dos utilizadores aparecem com as permissões específicas de que necessitam; o utilizador pode rever os termos de utilização, as permissões pedidas e a política de privacidade antes de instalar um suplemento do Outlook.
Ao compartilhar um documento, os usuários também compartilham suplementos que foram inseridos no documento ou associados a ele. Se um utilizador abrir um documento que contenha um suplemento que o utilizador não tenha utilizado anteriormente, a aplicação cliente do Office pede ao utilizador para conceder permissão para que o suplemento seja executado no documento. Num ambiente organizacional, a aplicação cliente do Office também pede ao utilizador se o documento provém de uma origem externa.
Os suplementos em execução nas seguintes aplicações do Office estão impedidos de aceder às capacidades de dispositivo de um utilizador.
Office na Web (Excel, Outlook, PowerPoint e Word) em execução em browsers baseados no Chromium, como o Microsoft Edge ou o Google Chrome
As capacidades de dispositivo de um utilizador incluem a câmara, a geolocalização e o microfone. Para saber mais, consulte Ver, gerir e instalar suplementos para Excel, PowerPoint e Word.
Os usuários podem habilitar ou desabilitar o acesso ao AppSource. Para suplementos de conteúdo e painel de tarefas, os utilizadores gerem o acesso a suplementos e catálogos fidedignos a partir do Centro de Confiança no cliente anfitrião do Office (aberto a partir deCatálogos de Suplementos Fidedignos dasDefinições do Centro de ConfiançadoCentro> deOpções>> de Ficheiros>).
No Outlook, o acesso para gerir suplementos depende do cliente outlook do utilizador. Para saber mais, consulte Utilizar suplementos no Outlook.
Os administradores também podem gerir o acesso ao AppSource através do centro de administração.
A conceção da plataforma de suplementos proporciona segurança e desempenho aos utilizadores finais das seguintes formas.
Um Suplemento do Office é executado num controlo de browser alojado num ambiente de runtime de suplemento separado da aplicação cliente do Office. Esta estrutura proporciona segurança e isolamento de desempenho da aplicação cliente.
A execução em um controle de navegador da Web permite que o suplemento faça quase tudo que uma página da Web regular em execução em um navegador pode fazer, mas, ao mesmo tempo, restringe o suplemento a observar a política de mesma origem para o isolamento de domínio e as zonas segurança.
Os suplementos do Outlook fornecem recursos adicionais de segurança e desempenho por meio do monitoramento de uso de recursos específicos do suplemento do Outlook. Para saber mais, consulte Privacidade, permissões e segurança de suplementos do Outlook.
Diretrizes de desenvolvedor para lidar com PII
O seguinte lista algumas diretrizes específicas de proteção PII para si enquanto programador de Suplementos do Office.
O objeto Settings destina-se a persistir configurações e dados de estado de suplementos entre sessões para um suplemento de conteúdo ou de painel de tarefas, mas não armazena senhas e outros itens de PII confidenciais no objeto Settings. Os dados no objeto Settings não ficam visíveis para os usuários finais, mas são armazenados como parte do formato de arquivo do documento, que está prontamente acessível. Você deve limitar o uso de PII pelo suplemento e armazenar quaisquer itens de PII necessários ao suplemento no servidor que hospeda o suplemento como um recurso protegido pelo usuário.
O uso de alguns aplicativos pode revelar itens de PII. Armazene com segurança os dados de identidade, local, horas de acesso e outras credenciais dos usuários para que os dados não sejam disponibilizados para outros usuários do suplemento.
Se o suplemento estiver disponível no AppSource, o requisito do AppSource por HTTPS protegerá os itens de PII transmitidos entre o servidor Web e o dispositivo ou computador cliente. No entanto, se você retransmitir esses dados para outros servidores, observe o mesmo nível de proteção.
Se você armazenar itens de PII dos usuários, revele esse fato e forneça uma maneira para que os usuários os inspecionem e excluam. Se você enviar o suplemento ao AppSource, poderá indicar na política de privacidade os dados que coleta e como eles são usados.
Opções de permissão e práticas de segurança de desenvolvedores
Siga estas diretrizes gerais para dar suporte ao modelo de segurança de Suplementos do Office e analisar detalhadamente cada tipo de suplemento.
Pedir as permissões necessárias
A plataforma de suplementos fornece um modelo de permissões que o suplemento usa para declarar o nível de acesso aos dados de um usuário de que necessita para seus recursos. Cada nível de permissão corresponde ao subconjunto da API JavaScript para Office que o suplemento tem permissão para usar para seus recursos. Por exemplo, a permissão WriteDocument para suplementos de conteúdo e painel de tarefas permite o acesso ao método Document.setSelectedDataAsync que permite que um suplemento escreva no documento do utilizador, mas não permite o acesso a nenhum dos métodos para ler dados do documento. Esse nível de permissão faz sentido para suplementos que só precisam gravar em um documento, como um suplemento em que o usuário pode consultar dados para inserir em seu documento.
Como melhor prática, deve pedir permissões com base no princípio do menor privilégio. Ou seja, você deve solicitar permissão para acessar apenas o subconjunto mínimo da API que o suplemento requer para funcionar corretamente. Por exemplo, se o suplemento precisa apenas ler dados no documento de um usuário para seus recursos, você não deve solicitar mais do que a permissão ReadDocument. (Porém, lembre-se de que a solicitação de permissões insuficientes fará com que a plataforma de suplementos bloqueie o uso de algumas APIs pelo suplemento e gerará erros em tempo de execução.)
Você especifica permissões no manifesto do suplemento, conforme mostrado no exemplo abaixo nesta seção, e os usuários finais podem ver o nível de permissão solicitado de um suplemento antes de decidirem instalar ou ativar o suplemento pela primeira vez. Além disso, os suplementos do Outlook que pedem a permissão ReadWriteMailbox requerem privilégios de administrador explícitos para instalar.
O exemplo seguinte mostra como um suplemento do painel de tarefas especifica a permissão ReadDocument no respetivo manifesto. Para manter as permissões em destaque, outros elementos no manifesto não são exibidos.
<?xml version="1.0" encoding="utf-8"?>
<OfficeApp xmlns="http://schemas.microsoft.com/office/appforoffice/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ver="http://schemas.microsoft.com/office/appforoffice/1.0"
xsi:type="TaskPaneApp">
... <!-- To keep permissions as the focus, not displaying other elements. -->
<Permissions>ReadDocument</Permissions>
...
</OfficeApp>
Para saber mais sobre permissões para suplementos de painel de tarefas e de conteúdo, consulte Solicitar permissões para uso da API em suplementos .
Para obter mais informações sobre permissões para suplementos do Outlook, consulte os tópicos seguintes.
Seguir a política de origem idêntica
Uma vez que os Suplementos do Office são páginas Web executadas num controlo de browser, têm de seguir a política de origem imposta pelo browser. Por predefinição, uma página Web num domínio não consegue efetuar chamadas de serviço Web XmlHttpRequest para outro domínio que não seja aquele onde está alojada.
Uma forma de ultrapassar esta limitação é utilizar JSON/P – fornecer um proxy para o serviço Web ao incluir uma etiqueta de script com um atributo src que aponte para algum script alojado noutro domínio. Você pode criar as marcasscript via programação gerando de forma dinâmica a URL para a qual apontar o atributo src e passando parâmetros à URL por meio de parâmetros da consulta de URI. Os provedores de serviços Web criam e hospedam o código JavaScript em URLs específicas e retornam scripts diferentes, dependendo dos parâmetros de consulta de URI. Em seguida, esses scripts são executados onde estão inseridos e funcionam como esperado.
A seguir há um exemplo de JSON/P no exemplo de suplemento do Outlook.
// Dynamically create an HTML SCRIPT element that obtains the details for the specified video.
function loadVideoDetails(videoIndex) {
// Dynamically create a new HTML SCRIPT element in the webpage.
const script = document.createElement("script");
// Specify the URL to retrieve the indicated video from a feed of a current list of videos,
// as the value of the src attribute of the SCRIPT element.
script.setAttribute("src", "https://gdata.youtube.com/feeds/api/videos/" +
videos[videoIndex].Id + "?alt=json-in-script&callback=videoDetailsLoaded");
// Insert the SCRIPT element at the end of the HEAD section.
document.getElementsByTagName('head')[0].appendChild(script);
}
O Exchange e o SharePoint fornecem proxies do lado do cliente para habilitar o acesso de domínio cruzado. Em geral, a política de mesma origem em uma intranet não é tão estrita como na Internet. Para saber mais, confira Política de mesma origem, parte 1: sem exibição e Como lidar com limitações de política de mesma origem nos Suplementos do Office.
Impedir scripts maliciosos entre sites
Um mau ator pode atacar a origem de um suplemento ao introduzir script malicioso através do documento ou campos no suplemento. Um desenvolvedor deve processar a entrada do usuário para evitar a execução de JavaScript de um usuário mal-intencionado em seu domínio. Seguem-se algumas boas práticas a seguir para processar entradas de utilizadores a partir de um documento ou mensagem de correio, ou através de campos num suplemento.
Em vez da propriedade DOM innerHTML, use as propriedades innerText e textContent quando apropriado. Efetue o seguinte procedimento para o suporte do Internet Explorer e do Firefox para browsers cruzados.
var text = x.innerText || x.textContent
Para obter informações sobre as diferenças entre innerText e textContent, consulte Node.textContent. Para saber mais sobre a compatibilidade de DOM entre navegadores comuns, consulte Compatibilidade de DOM W3C ‒ HTML.
Se tiver de utilizar innerHTML, certifique-se de que a entrada do utilizador não contém conteúdo malicioso antes de o transmitir para innerHTML. Para obter mais informações e um exemplo de como utilizar innerHTML em segurança, veja propriedade innerHTML .
Se estiver usando jQuery, use o método .text() em vez do método .html().
Use o método toStaticHTML para remover atributos e elementos HTML dinâmicos da entrada dos usuários antes de passá-la para innerHTML.
Use a função encodeURIComponent ou encodeURI para codificar texto que se destina a ser uma URL que vem da entrada do usuário ou a contém.
Consulte Desenvolver suplementos seguros para obter mais práticas recomendadas para criar soluções Web mais seguras.
Impedir o "clickjacking"
Uma vez que os Suplementos do Office são compostos num iframe quando são executados num browser com aplicações cliente do Office, utilize as seguintes sugestões para minimizar o risco de clickjacking – uma técnica utilizada por hackers para enganar os utilizadores a revelar informações confidenciais.
Em primeiro lugar, identifique ações confidenciais que o suplemento pode executar. Elas incluem ações que um usuário não autorizado pode usar de forma mal-intencionada, como iniciar uma transação financeira ou publicar dados confidenciais. Por exemplo, o suplemento pode permitir que o usuário envie um pagamento a um destinatário definido pelo usuário.
Segundo, para ações confidenciais, o suplemento deve confirmar com o usuário antes de executar a ação. A confirmação deve detalhar o efeito que a ação terá. Também deve detalhar como o usuário pode impedir a ação, se necessário, escolhendo um botão específico marcado como "Não Permitir" ou ignorando a confirmação.
Em terceiro lugar, para garantir que nenhum ator de ameaças pode ocultar ou mascarar a confirmação, deve apresentá-la fora do contexto do suplemento (ou seja, não numa caixa de diálogo HTML).
Seguem-se alguns exemplos de como pode obter confirmação.
Envie um e-mail ao usuário com um link de confirmação.
Envie uma mensagem de texto ao usuário com um código de confirmação para ele inserir no suplemento.
Abra um diálogo de confirmação em uma nova janela do navegador para uma página que não possa ser exibida em iframe. Geralmente, esse é o padrão usado por páginas de login. Utilize a API de caixa de diálogo para criar uma nova caixa de diálogo.
Além disso, certifique-se de que o endereço que utiliza para contactar o utilizador não pode ter sido fornecido por um ator de ameaças. Por exemplo, para confirmações de pagamento, use o endereço arquivado na conta autorizada do usuário.
Pedir permissão para aceder às capacidades dos dispositivos (aplica-se ao Office na Web e ao novo Outlook no Windows)
Se um suplemento necessitar de acesso às capacidades do dispositivo de um utilizador, como a câmara, a geolocalização ou o microfone, o programador tem de configurá-lo para pedir permissão ao utilizador. Isto aplica-se às seguintes aplicações do Office.
- Office na Web (Excel, Outlook, PowerPoint e Word) em execução em browsers baseados no Chromium, como o Microsoft Edge ou o Google Chrome
- novo Outlook no Windows
Para pedir permissão, o suplemento tem de implementar a API de permissão do dispositivo.
Para obter informações sobre como é pedida permissão ao utilizador, consulte Ver, gerir e instalar suplementos para Excel, PowerPoint e Word.
Observação
- Os suplementos que são executados em clientes de ambiente de trabalho do Office ou em browsers não baseados no Chromium mostram automaticamente uma caixa de diálogo a pedir a permissão de um utilizador. O programador não precisa de implementar a API de permissão do dispositivo nestas plataformas.
- Os suplementos que são executados no Safari estão impedidos de aceder às capacidades de dispositivo de um utilizador. A API de permissão do dispositivo não é suportada no Safari.
Outras práticas de segurança
Os programadores também devem tomar nota das seguintes práticas de segurança.
Os desenvolvedores não devem usar controles ActiveX em Suplementos do Office, pois os controles ActiveX não dão suporte à natureza de plataforma cruzada da plataforma de suplementos.
Os suplementos do painel de conteúdos e de tarefas assumem as mesmas definições de SSL que o browser utiliza por predefinição e permitem que a maioria dos conteúdos seja entregue apenas por SSL. Os suplementos do Outlook exigem que todo o conteúdo seja fornecido por SSL. Os programadores têm de especificar no <elemento SourceLocation> do manifesto do suplemento um URL que utiliza HTTPS, para identificar a localização do ficheiro HTML para o suplemento.
Para garantir que os suplementos não estão a fornecer conteúdo através de HTTP, ao testar suplementos, os programadores devem certificar-se de que as seguintes definições estão selecionadas nas Opções da Internet no Painel de Controlo e que não são apresentados avisos de segurança nos seus cenários de teste.
Certifique-se de que a definição de segurança Apresentar conteúdo misto para a zona da Internet está definida como Prompt. Pode fazê-lo ao selecionar o seguinte em Opções da Internet: no separador Segurança , selecione a zona Internet , selecione Nível personalizado, desloque-se para procurar Conteúdo misto de apresentação e selecione Perguntar se ainda não está selecionado.
Verifique se a opção Avisar ao alterar o modo de segurança está marcada na guia Avançado da caixa de diálogo Opções da Internet.
Para garantir que os suplementos não usem excessivamente os recursos de memória ou do núcleo da CPU e causem a negação de serviço em um computador cliente, a plataforma de suplementos estabelece limites de uso de recursos. Como parte dos testes, os desenvolvedores devem verificar se o desempenho de um suplemento está dentro dos limites de uso de recursos.
Antes de publicar um suplemento, os desenvolvedores devem verificar se as informações de identificação pessoal expostas nos arquivos do suplemento estão seguras.
Os programadores não devem incorporar chaves que utilizam para aceder a APIs ou serviços da Microsoft e de outros (como o Bing, Google ou Facebook) diretamente nas páginas HTML do respetivo suplemento. Em vez disso, devem criar um serviço Web personalizado ou armazenar as chaves em alguma outra forma de armazenamento seguro na Web, que podem então chamar para passar o valor de chave ao suplemento.
Os programadores devem fazer o seguinte ao submeter um suplemento para o AppSource.
- Hospedar o suplemento que estão enviando em um servidor Web que dê suporte a SSL.
- Produzir uma declaração com uma política de privacidade compatível.
- Estar preparados para assinar um acordo contratual ao enviar o suplemento.
Além das regras de uso de recursos, os desenvolvedores de suplementos do Outlook também devem verificar se os suplementos estão de acordo com os limites para a especificação de regras de ativação e se usam a API JavaScript. Para saber mais, confira Limites de ativação e API JavaScript para suplementos do Outlook.
Controle de administradores de TI
Em uma configuração corporativa, os administradores de TI têm autoridade final para habilitar ou desabilitar o acesso ao AppSource e a catálogos particulares.
O gerenciamento e a execução das configurações do Office são feitos com as configurações de política de grupo. Eles são configuráveis através da Ferramenta de Implantação do Office, em conjunto com a Ferramenta de Personalização do Office.
Nome da configuração | Descrição |
---|---|
Permitir catálogos e suplementos da Web inseguros | Permite que os utilizadores executem Suplementos do Office não seguros, que são Suplementos do Office que têm localizações de página Web ou catálogo que não estão protegidos por SSL (https://) e não estão nas zonas de Internet dos utilizadores. |
Bloquear Suplementos da Web | Permite-lhe impedir que os utilizadores executem Suplementos do Office que utilizam tecnologias Web. |
Bloquear a Office Store | Permite-lhe impedir que os utilizadores entrem ou executem Suplementos do Office provenientes do AppSource. |
Confira também
- Solicitar permissões para uso da API em suplementos
- Privacidade, permissões e segurança de suplementos do Outlook
- Noções básicas sobre permissões de suplemento do Outlook
- Limites de ativação e da API do JavaScript API para suplementos do Outlook
- Como lidar com limitações de política de mesma origem nos suplementos do Office
- Política de Mesma Origem
- Política de Mesma Origem Parte 1: Sem Inspecionar
- Política de mesma origem para JavaScript
- Modo Protegido do IE
- Controles de privacidade para Microsoft 365 Apps