diff --git a/README.md b/README.md index 2d95937..4c526d5 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,13 @@ Plataforma Digital para a Reserva de Salas e Respetivos Materiais. PAP (Prova de Aptidão Profissional) - Marco Pisco - Curso de Técnico de Informática - Sistemas 12ºAno -## Instalação (o básico) +## Dependências -- Necessário um servidor com PHP e uma DB MariaDB +- PHP 8.4 (versão recomendada/testada; usar versão compatível com as dependências do Composer) +- Servidor Web (recomendo o Caddy) +- MariaDB ou MySQL (oficialmente recomendo o MariaDB) — é necessário criar o utilizador e a base de dados antes de instalar (consultar o Manual do Técnico para instruções detalhadas) - Composer (para o Windows, descarregar [esta versão](https://getcomposer.org/Composer-Setup.exe)) - Com o composer, fazer `composer install` através de um terminal, para instalar as dependências. -- Montar o utilizador usando as instruções [na wiki](https://github.com/marpisco/ClassLink/wiki/Configura%C3%A7%C3%A3o-MYSQL) (brevemente haverá mais documentação na Wiki) Informações específicas (e mais bem explicadas) estarão no Manual do Técnico. diff --git a/src/config.sample.php b/src/config.sample.php index 1e116c3..1c2723c 100644 --- a/src/config.sample.php +++ b/src/config.sample.php @@ -1,42 +1,48 @@ 'mysql', // Apenas há suporte a MYSQL (mysql = mariadb) por enquanto + 'servidor' => 'localhost', + 'user' => 'reservasalas', + // Defina uma password forte antes de usar em produção e restrinja as permissões deste utilizador da DB ao mínimo necessário. + 'password' => '', + 'db' => 'reservasalas', + 'porta' => 3306 + ); + + // Configuração do servidor de email $mail = array( 'ativado' => true, 'servidor' => 'smtp.gmail.com', 'porta' => 465, 'autenticacao' => true, - // caso a autenticação seja por starttls, usar PHPMailer::ENCRYPTION_STARTTLS - // caso a autenticação seja por ssl, usar PHPMailer::ENCRYPTION_SMTPS - // caso não seja necessário autenticação, por false na opção autenticacao, e não importar-se para os outros - 'tipodeseguranca' => 'PHPMailer::ENCRYPTION_STARTTLS ou PHPMailer::ENCRYPTION_SMTPS', + // Tipo de Segurança: + // - Para STARTTLS (normalmente porta 587), usar \PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_STARTTLS + // - Para SMTPS/SSL (normalmente porta 465), usar \PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_SMTPS + // - Se não for necessária autenticação, definir 'autenticacao' => false e ajustar esta opção conforme necessário + 'tipodeseguranca' => \PHPMailer\PHPMailer\PHPMailer::ENCRYPTION_SMTPS, 'username' => '', 'fromname' => 'Reserva de Salas', 'mailfrom' => '', 'password' => '' ); - // Database configuration (MySQL/MariaDB) - // SECURITY: Use strong passwords and restrict database user permissions - $db = array( - 'tipo' => 'mysql', - 'servidor' => 'localhost', - 'user' => 'reservasalas', - 'password' => 'salaspass', // CHANGE THIS to a strong password - 'db' => 'reservasalas', - 'porta' => 3306 - ); - - // OAuth 2.0 configuration - // SECURITY: Keep clientId and clientSecret confidential + // Configuração do Fornecedor de Autenticação (OAuth 2.0) + // IMPORTANTE: Manter o clientSecret confidencial e nunca o expor publicamente. + // O redirectUri deve ser um URL estático/configurado explicitamente — não use $_SERVER['HTTP_HOST'] + // diretamente pois pode ser manipulado (Host Header Injection). $provider = new GenericProvider([ - 'urlAuthorize' => 'https://authentik.devenv.marcopisco.com/application/o/authorize/', - 'urlAccessToken' => 'https://authentik.devenv.marcopisco.com/application/o/token/', - 'urlResourceOwnerDetails' => 'https://authentik.devenv.marcopisco.com/application/o/userinfo/', - 'clientId' => 'clientid', // CHANGE THIS - 'clientSecret' => 'clientsecret', // CHANGE THIS and keep it secret - 'redirectUri' => 'https://' . $_SERVER['HTTP_HOST'] . '/login' + 'urlAuthorize' => 'https://exemplo.dominio.pt/application/o/authorize/', + 'urlAccessToken' => 'https://exemplo.dominio.pt/application/o/token/', + 'urlResourceOwnerDetails' => 'https://exemplo.dominio.pt/application/o/userinfo/', + 'clientId' => '', + 'clientSecret' => '', + 'redirectUri' => 'https://exemplo.dominio.pt/login' ]); ?> \ No newline at end of file