Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Alterações de dezembro Equipe laje 241223 #870

Merged
merged 21 commits into from
Dec 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ef1f9f4
Resolução XSS [Issue #840]
GabrielPintoSouza Dec 23, 2024
0d81074
Adição de filtro para o uso da entrada de descricao [Issue #841]
GabrielPintoSouza Dec 23, 2024
8eb446f
Adição de filtros para as entradas de dependente_editarInfoPessoal.ph…
GabrielPintoSouza Dec 23, 2024
f35910c
Resolução XSS [Issue #843]
GabrielPintoSouza Dec 23, 2024
e6bfae0
Resolução XSS [Issue #844]
GabrielPintoSouza Dec 24, 2024
3e4d5a3
Resolução XSS [Issue #845]
GabrielPintoSouza Dec 24, 2024
f65258a
Resolução XSS [Issue #846]
GabrielPintoSouza Dec 24, 2024
2dd91c6
Integração da mensagem de agradecimento com os serviços de geração de…
GabrielPintoSouza Dec 24, 2024
44a531a
Resolução XSS [Issue #847]
GabrielPintoSouza Dec 24, 2024
f3b1cd9
Resolução XSS [Issue #849]
GabrielPintoSouza Dec 26, 2024
f1233c3
Resolução XSS [Issue #850]
GabrielPintoSouza Dec 26, 2024
420b88e
Resolução XSS [Issue #851]
GabrielPintoSouza Dec 26, 2024
61ae1c3
Resolução XSS [Issue #852]
GabrielPintoSouza Dec 26, 2024
d444190
Migração do módulo de contribuicao [Issue #831]
GabrielPintoSouza Dec 27, 2024
28c7c2a
Conserto das requisições de cadastro_socio.php [Issue #831]
GabrielPintoSouza Dec 27, 2024
cdb8e84
Resolução SQL Injection [Issue #855]
GabrielPintoSouza Dec 30, 2024
d474123
Resolução XSS [Issue #856]
GabrielPintoSouza Dec 30, 2024
782080f
Resolução SQL Injection [Issue #857]
GabrielPintoSouza Dec 30, 2024
8a37021
Resolução XSS [Issue #861]
GabrielPintoSouza Dec 30, 2024
09affa8
Resolução XSS [Issue #862]
GabrielPintoSouza Dec 30, 2024
673d7a3
Resolução XSS [Issue #863]
GabrielPintoSouza Dec 30, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
config.php
BD/.idea/
html/contribuicao/pdfs/
html/apoio/pdfs/
html/apoio/view/teste.php

3 changes: 2 additions & 1 deletion BD/wegia002.sql
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ INSERT INTO `selecao_paragrafo` (`id_selecao`, `nome_campo`, `paragrafo`, `origi
(3, 'Conheça', 'O WEGIA é um software livre licenciado pela GNU/GPL v3.', 1),
(4, 'Objetivo', 'Promover uma boa administração ao fornecer serviços de ajuda e controle de estoques, gerenciamento de funcionários e pessoal, visando um maior proveito de recursos.\r\n\r\nEntre com suas credenciais padrão de administrador para configurar o sistema:\r\n\r\nusuário: admin\r\nsenha: wegia', 1),
(5, 'Rodapé', 'WeGIA - Desenvolvido pelo Cefet/RJ UnED Nova Friburgo', 1),
(6, 'ContribuiçãoMSG', 'Contribua você também!', '1');
(6, 'ContribuiçãoMSG', 'Contribua você também!', 1);
(7, 'agradecimento_doador', 'Mensagem de Agradecimento ao DOADOR', 1);

INSERT INTO `campo_imagem` (`id_campo`, `nome_campo`, `tipo`) VALUES
(1, 'Logo', 'img'),
Expand Down
4 changes: 2 additions & 2 deletions controle/CargoControle.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ public function incluir() {
// Decodifica o JSON
$data = json_decode($json, true);

$cargoDescricao = trim($data["cargo"]);
$cargoDescricao = trim(filter_var($data['cargo'], FILTER_SANITIZE_STRING));
} else {
// Recebe os dados do formulário normalmente
$cargoDescricao = trim($_POST["cargo"]);
$cargoDescricao = trim(filter_input(INPUT_POST, 'cargo', FILTER_SANITIZE_STRING));
}

try {
Expand Down
54 changes: 41 additions & 13 deletions controle/QuadroHorarioControle.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,28 +5,42 @@ class QuadroHorarioControle
{
// Tipos

public function listarTipo(){
public function listarTipo()
{
extract($_REQUEST);
(new QuadroHorarioDAO())->listarTipos();
header("Location: $nextPage");
}

public function adicionarTipo(){
extract($_REQUEST);
public function adicionarTipo()
{
$tipo = trim(filter_input(INPUT_POST, 'tipo', FILTER_SANITIZE_STRING));
$nextPage = trim(filter_input(INPUT_POST, 'nextPage', FILTER_SANITIZE_URL));

if (!$tipo || strlen($tipo) == 0) {
http_response_code(400);
echo json_encode(['erro' => 'O tipo não pode ser vazio.']);
exit();
}

session_start();
try {
$log = (new QuadroHorarioDAO())->adicionarTipo($tipo);;
$_SESSION['msg'] = $log;
} catch (PDOException $e) {
echo("Erro ao adicionar tipo '$tipo' ao banco de dados: " . $e->getMessage());
echo ("Erro ao adicionar tipo '$tipo' ao banco de dados: " . $e->getMessage());
$_SESSION['msg'] = "Erro ao adicionar tipo: " . $e->getMessage();
$_SESSION['flag'] = "erro";
}
$_SESSION['btnVoltar'] = true;
header("Location: $nextPage");

if ($nextPage) {
header("Location: $nextPage");
}
}

public function removerTipo(){
public function removerTipo()
{
extract($_REQUEST);
$log = (new QuadroHorarioDAO)->removerTipo($id);
session_start();
Expand All @@ -36,32 +50,46 @@ public function removerTipo(){

// Escalas

public function listarEscala(){
public function listarEscala()
{
extract($_REQUEST);
(new QuadroHorarioDAO())->listarEscalas();
header("Location: $nextPage");
}

public function adicionarEscala(){
extract($_REQUEST);
public function adicionarEscala()
{
$escala = trim(filter_input(INPUT_POST, 'escala', FILTER_SANITIZE_STRING));
$nextPage = trim(filter_input(INPUT_POST, 'nextPage', FILTER_SANITIZE_URL));

if (!$escala || strlen($escala) == 0) {
http_response_code(400);
echo json_encode(['erro' => 'A escala não pode ser vazia.']);
exit();
}

session_start();
try {
$log = (new QuadroHorarioDAO())->adicionarEscala($escala);
$_SESSION['msg'] = $log;
} catch (PDOException $e) {
echo("Erro ao adicionar escala '$escala' ao banco de dados: " . $e->getMessage());
echo ("Erro ao adicionar escala '$escala' ao banco de dados: " . $e->getMessage());
$_SESSION['msg'] = "Erro ao adicionar escala: " . $e->getMessage();
$_SESSION['flag'] = "erro";
}
$_SESSION['btnVoltar'] = true;
header("Location: $nextPage");

if ($nextPage) {
header("Location: $nextPage");
}
}

public function removerEscala(){
public function removerEscala()
{
extract($_REQUEST);
$log = (new QuadroHorarioDAO)->removerEscala($id);
session_start();
$_SESSION['msg'] = $log;
header("Location: $nextPage");
}
}
}
10 changes: 8 additions & 2 deletions dao/adicionar_cargo.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,25 @@
<?php
require_once 'Conexao.php';
require_once '../html/permissao/permissao.php';

$cargo = trim($_POST["cargo"]);
//Verifica se um usuário está logado e possui as permissões necessárias
session_start();
permissao($_SESSION['id_pessoa'], 11, 3);

$cargo = trim(filter_input(INPUT_POST, 'cargo', FILTER_SANITIZE_STRING));

if(!$cargo || empty($cargo)){
http_response_code(400);
exit('Erro, a descrição fornecida para o cargo não pode ser vazia.');
}

try {
$sql = "INSERT into cargo(cargo) values(:cargo)";
$sql = "INSERT INTO cargo(cargo) VALUES (:cargo)";
$pdo = Conexao::connect();
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':cargo', $cargo);
$stmt->execute();
} catch (PDOException $e) {
http_response_code(500);
echo 'Erro ao adicionar novo cargo: '.$e->getMessage();
}
13 changes: 11 additions & 2 deletions dao/adicionar_situacao.php
Original file line number Diff line number Diff line change
@@ -1,19 +1,28 @@
<?php
//Requisições necessárias
require_once 'Conexao.php';
require_once '../html/permissao/permissao.php';

$situacao = trim($_POST["situacao"]);
//Verifica se um usuário está logado e possui as permissões necessárias
session_start();
permissao($_SESSION['id_pessoa'], 11, 3);

//Sanitiza a entrada.
$situacao = trim(filter_input(INPUT_POST, 'situacao', FILTER_SANITIZE_STRING));

if(!$situacao || empty($situacao)){
http_response_code(400);
exit('Erro, a descrição de uma nova situação não pode ser vazia.');
}

//Executa a consulta no banco de dados da aplicação
try {
$sql = "INSERT into situacao(situacoes) values(:situacao)";
$sql = "INSERT INTO situacao(situacoes) VALUES (:situacao)";
$pdo = Conexao::connect();
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':situacao', $situacao);
$stmt->execute();
} catch (PDOException $e) {
http_response_code(500);
echo 'Erro ao inserir uma nova situação no banco de dados: '.$e->getMessage();
}
9 changes: 5 additions & 4 deletions dao/exibir_cargo.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,14 @@

$sql = 'SELECT * FROM cargo';
$stmt = $pdo->query($sql);
$cargos = array();
$resultado = $stmt->fetchAll(PDO::FETCH_ASSOC);
if ($resultado) {
$cargos = $resultado;

foreach($resultado as $index => $cargo){
$resultado[$index]['cargo'] = htmlspecialchars($cargo['cargo']);
}

echo json_encode($cargos);
echo json_encode($resultado);
} catch (PDOException $e) {
http_response_code(500);
echo 'Erro ao exibir cargos: '.$e->getMessage();
}
21 changes: 16 additions & 5 deletions dao/exibir_situacao.php
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
<?php
require_once'Conexao.php';
$pdo = Conexao::connect();
//Requisições necessárias
require_once 'Conexao.php';
require_once '../html/permissao/permissao.php';

$sql = 'select * from situacao';
//Verifica se um usuário está logado e possui as permissões necessárias
session_start();
permissao($_SESSION['id_pessoa'], 11, 3);

$pdo = Conexao::connect();

try {
$sql = 'SELECT * FROM situacao';
$stmt = $pdo->query($sql);
$resultado = array();
while ($row = $stmt->fetch()) {
$resultado[] = array('id_situacao'=>$row['id_situacao'],'situacoes'=>$row['situacoes']);
$resultado[] = array('id_situacao' => $row['id_situacao'], 'situacoes' => htmlspecialchars($row['situacoes']));
}
echo json_encode($resultado);
?>
} catch (PDOException $e) {
http_response_code(500);
echo $e->getMessage();
}
56 changes: 32 additions & 24 deletions dao/verificar_recursos_cargo.php
Original file line number Diff line number Diff line change
@@ -1,27 +1,35 @@
<?php
$config_path = "config.php";
if(file_exists($config_path)){
require_once($config_path);
}else{
while(true){
$config_path = "../" . $config_path;
if(file_exists($config_path)) break;
}
require_once($config_path);
}
extract($_REQUEST);
$conexao = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
$resultado = mysqli_query($conexao, "SELECT `id_recurso` FROM `permissao` WHERE id_cargo = $cargo");

$recursos = array();
$i = 0;
while($recurso = $resultado->fetch_array(MYSQLI_NUM))
{
$recursos[$i] = $recurso[0];
$i++;
}
echo json_encode($recursos);

require_once '../config.php';
require_once './Conexao.php';

$cargo = trim(filter_input(INPUT_POST, 'cargo', FILTER_SANITIZE_NUMBER_INT));

if (!$cargo || $cargo < 1) {
http_response_code(400);
echo json_encode(['erro' => 'O id de um cargo deve ser um inteiro positivo maior ou igual a 1.']);
exit();
}

try {
$pdo = Conexao::connect();

$sql = 'SELECT id_recurso FROM permissao WHERE id_cargo=:cargo';

$stmt = $pdo->prepare($sql);
$stmt->bindParam(':cargo', $cargo);

?>
$stmt->execute();

$resultados = $stmt->fetchAll(PDO::FETCH_ASSOC);

$recursos = [];

foreach($resultados as $resultado){
$recursos []= $resultado['id_recurso'];
}

echo json_encode($recursos);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['erro' => 'Falha ao estabelecer conexão com o servidor.']);
}
4 changes: 0 additions & 4 deletions html/apoio/index.php

This file was deleted.

4 changes: 0 additions & 4 deletions html/apoio/pdfs/index.php

This file was deleted.

16 changes: 8 additions & 8 deletions html/atendido/Cadastro_Atendido.php
Original file line number Diff line number Diff line change
Expand Up @@ -307,43 +307,43 @@ function desabilitar_rg() {
</div>
</div>
</div>
<div class="form-group">
<div class="form-horizontal form-group">
<label class="col-md-3 control-label" for="profileCompany">Telefone</label>
<div class="col-md-6">
<input type="text" class="form-control" maxlength="14" minlength="14" name="telefone" id="telefone" id="profileCompany" placeholder="Ex: (22)99999-9999" onkeypress="return Onlynumbers(event)" onkeyup="mascara('(##)#####-####',this,event)">
</div>
</div>

<div class="form-group">
<div class="form-horizontal form-group">
<label class="col-md-3 control-label" for="profileCompany">Nascimento<sup class="obrig">*</sup></label>
<div class="col-md-6">
<input type="date" placeholder="dd/mm/aaaa" maxlength="10" class="form-control" name="nascimento" id="nascimento" min=<?= $dataNascimentoMinima ?> max=<?= $dataNascimentoMaxima ?> required>
</div>
</div>

<div class="form-group">
<div class="form-horizontal form-group">
<label class="col-md-3 control-label" for="inputSuccess">Status<sup class="obrig">*</sup></label>
<a onclick="adicionar_status()"><i class="fas fa-plus w3-xlarge" style="margin-top: 0.75vw"></i></a>
<div class="col-md-6">
<select required class="form-control input-lg mb-md" name="intStatus" id="intStatus">
<option selected disabled value="">Selecionar</option>
<?php
while ($row = $intStatus->fetch_array(MYSQLI_NUM)) {
echo "<option value=" . $row[0] . ">" . $row[1] . "</option>";
echo "<option value=" . $row[0] . ">" . htmlspecialchars($row[1]) . "</option>";
}
?>
</select>
</div>
</div>
<div class="form-group">
<div class="form-horizontal form-group">
<label class="col-md-3 control-label" for="inputSuccess">Tipo<sup class="obrig">*</sup></label>
<a onclick="adicionar_tipo()"><i class="fas fa-plus w3-xlarge" style="margin-top: 0.75vw"></i></a>
<div class="col-md-6">
<select required class="form-control input-lg mb-md" name="intTipo" id="intTipo">
<option selected disabled value="">Selecionar</option>
<?php
while ($row = $intTipo->fetch_array(MYSQLI_NUM)) {
echo "<option value=" . $row[0] . " required>" . $row[1] . "</option>";
echo "<option value=" . $row[0] . " required>" . htmlspecialchars($row[1]) . "</option>";
}
?>
</select>
Expand All @@ -356,7 +356,7 @@ function desabilitar_rg() {
<div class="form-group">
<label class="col-md-3 control-label" for="cpf">Número do CPF<sup class="obrig">*</sup></label>
<div class="col-md-4">
<input type="text" class="form-control" id="cpf" name="cpf" placeholder="Ex: 222.222.222-22" maxlength="14" onblur="validarCPF(this.value)" onkeypress="return Onlynumbers(event)" onkeyup="mascara('###.###.###-##',this,event)" value="<?php echo $cpf ?>" disabled>
<input type="text" class="form-control" id="cpf" name="cpf" placeholder="Ex: 222.222.222-22" maxlength="14" onblur="validarCPF(this.value)" onkeypress="return Onlynumbers(event)" onkeyup="mascara('###.###.###-##',this,event)" value="<?php echo htmlspecialchars($cpf) ?>" disabled>
</div>

</div>
Expand All @@ -372,7 +372,7 @@ function desabilitar_rg() {
<div class="row">
<div class="col-md-9 col-md-offset-3">
<input type="hidden" name="nomeClasse" value="AtendidoControle">
<input type="hidden" name="cpf" value="<?php echo $cpf ?>">
<input type="hidden" name="cpf" value="<?php echo htmlspecialchars($cpf) ?>">
<input type="hidden" name="metodo" value="incluir">
<input id="enviar" type="submit" class="btn btn-primary" value="Enviar" onclick="validarInterno()">
</div>
Expand Down
1 change: 0 additions & 1 deletion html/atendido/Profile_Atendido.php
Original file line number Diff line number Diff line change
Expand Up @@ -642,7 +642,6 @@ function listarFunDocs(docfuncional) {
});
</script>

<script src="../contribuicao/js/validacpfcnpj.js"></script>
</head>

<body>
Expand Down
Loading