TWF

TWF

Introdução

A TWF (TecPorto Web Framework) é uma framework destinada à criação de aplicações Web em PHP, através de um modelo orientado a objectos com MVC (Model-View-Controller), separando a camada de apresentação da camada de negócio. Usa, ou facilita o uso, das seguintes linguagens ou tecnologias:

  • PHP 5+
  • MySQL/MariaDB
  • Javascript
  • XSLT
  • XML
  • CSS

Model-View-Controller

A TWF foi preparada para facilitar na construção de sites ou aplicações web em que a camada de negócio está isolada da camada de apresentação.

Na camada de negócio, o programador pode definir métodos executáveis local ou remotamente, que, no final da sua execução, devolverão o resultado num de vários formatos possíveis (como, por exemplo, XML, JSON, texto puro, objecto binário).

A camada de apresentação exporta o interface de interacção com o utilizador final que geralmente é definido usando uma combinação de XSLT (XML Stylesheet Transformations), (X)HTML e CSS. As informações que preenchem o interface são provenientes do resultado da execução das funções e métodos na camada de negócio.

Dada a implementação específica da TWF, qualquer método que possa ser chamado para preenchimento de conteúdos dinâmicos por processamento XSLT, pode também ser chamado remotamente através de pedidos AJAX. Esta situação não introduz falhas de segurança, dado que todas as verificações aplicáveis no processamento XSLT são também aplicáveis às chamadas via AJAX, mas permite outros níveis de dinamismo, nomeadamente com o uso de DHTML e HTML5.

Segurança

A TWF oferece ou facilita a aplicação de algumas medidas de segurança básicas para a construção de sites e aplicações web, entre as quais:

  • classes e métodos adicionais (para usar em conjunto com as classes PDO do PHP), que tornam mais fácil a adopção e uso de prepared statements, ajudando a evitar ataques de injecção de SQL de primeira ordem.
  • métodos de autenticação de utilizadores com base na combinação de nome de utilizador e palavra-chave (nomeadamente usando HMAC-SHA1, futuramente a ser actualizado para HMAC-SHA256).
  • organização orientada a objectos da estrutura da base de dados-
  • sistema de definição de permissões que inclui tipos de permissões, papéis (roles) e privilégios.
  • definição do conceito de namespaces na organização dos vários objectos guardados na base de dados-
  • identificação dos métodos chamáveis remotamente e respectivos parâmetros, bem como formas de análise antecipada do valor dos parâmetros (parameter sanitation), utilizando funções auxiliares ou expressões regulares, que permite evitar ataques de injecção de código.