SIQ GQF Plugin s WEB (Aplicações WEB) Gestão da Qualidade de Fornecedores Requerimentos do Software Versão para Microsoft Windows/Unix Dezembro 2006 Bem-Vindo ao to SIQ GQF Plugin s WEB - Gestão da Qualidade de Fornecedores, requerimento de Software para Microsoft Windows/Unix. Este guia contém os seguintes tópicos: Requerimentos Segurança Servidor de Aplicação
2 Requerimentos 2.1. Servidor de Aplicação JAVA IMPORTANTE: Caso não possua os requisitos abaixo especificado, a SIQ Systems, disponibiliza a solução de DataCenter com todos os recursos necessários para hospedar aplicações WEB. Para maiores informações, consulte a SIQ Requerimentos Mínimo Recomendado Sistema Operacional Windows NT 4 Windows 2000 Linux/Unix Windows XP Windows 2003 Linux/Unix Windows XP Espaço em disco 400 Mb (Pequena Variação +- 0.5 Mb Mês) 800 Mb (Pequena Variação +- 0.5 Mb Mês) JRE 1.5.0 > 1.5.0 > Servidor WEB IIS 5.0 ou Apache IIS 5.0 ou Apache Servidor de Aplicação* TOMCAT 5.X Desde que não utilizados componentes Enterprise Instance de 512 Mb JBOSS AS 4.0.5 GA (Java EE5) Instance de 512 Mb Bibliotecas JDBC de conexão com o Banco. Ex: Oracle é o OJDBC14.jar JDBC de conexão com o Banco. Ex: Oracle é o OJDBC14.jar Firewall Caso esteja usando Servidor WEB, basta liberar a porta deste servidor e fazer o direcionamento de contexto. Caso esteja usando Servidor WEB, basta liberar a porta deste servidor e fazer o direcionamento de contexto. *Outros Servidores de Aplicação compatíveis: - WebSphere - Oracle Application Server - GlassFish - BEA
- Sun Application Server Tecnologia utilizada nas aplicações Web (Java). - Java Server Faces - Apache Trinidad - Jboss RichFaces - Facelets - Hibernate - JFreeChart - Jasper Report (IReport) - JUnit - JMeter - HTML - J2EE - JSP - Servlets - JDBC - Spring - JbossSeam - JavaPersistence - TestNG
3 Segurança 3.1. Segurança das Aplicações SIQ Plugin s WEB. 3.1.1 Autenticação e Autorização de Usuários Senha com mínimo de 8 caracteres Tempo para Expiração da senha Não permite re-utilizar as 12 últimas senhas Expira a senha em caso de 3 tentativas de logins que falharem Envio de usuário e senha para o usuário (Esqueci minha senha) Permite o usuário alterar sua senha Definição e Aplicação de papéis para permissões do usuário Definição e Aplicação de Fornecedor(es) que o usuário tem permissão de visualização. 3.1.2 - Aspectos Tecnológicos Encriptação de senha no servidor de Aplicação Os arquivos de datasource do (Ex. JBoss) são criptografados. A senha é gerada e gravada em arquivo através de um aplicativo Swing provido pela SIQ-Systems. Rastreamento de operações no Banco de Dados Todos comandos de persistência são gravados em tabela, contendo o horário e o usuário logado que gerou a requisição da operação. Filtros web que garantem se o usuário esta realmente autenticado a cada página. Tempo limite para duração de sessões Uso de Captcha (imagem no Login) que evita tentativas automáticas de acesso. Compatibilidade SSL (https)
Session hijacking. O desenvolvimento web com a tecnologia JavaEE, provê um gerador de sessions UID s aleatório, bastante extenso e composto por caracteres alfa-numéricos. Isso garante que ele não seja classificado como "previsível". O uso de JavaServer Faces (usado no projeto), faz com que tais UID s (chamadas de jsessionid), jamais sejam enviadas por métodos GETs, nas urls, garantindo mais segurança. JSF trabalha via "POST". Validação de Inputs de todas as entradas de dados são validadas através de "validators" do Javaserver Faces. Cross Site Scripting Não existe no sistema desenvolvido, nenhum input passível de geração Javascript. Entradas como por exemplo ">" são substituídas pelo JavaServer Faces para ">". SQL Injection Para persistencia dos dados, utilizamos o padrão da Sun JavaPersistence API (JPA). Com JPA, os parâmetros não são concatenadados em uma String SQl e enviado ao Banco de Dados. A consulta é pré-compilada e enviada para o banco, com os parâmetros sendo setados préviamente por atribuição. Ex: Consulta pré-compilada: "select usuario.id from Usuario where usuario.nome =?1" Parâmetro String setado: setparameter(1, "SIQ").