Skip to content

Commit

Permalink
Resolução XSS [Issue #844]
Browse files Browse the repository at this point in the history
  • Loading branch information
GabrielPintoSouza committed Dec 24, 2024
1 parent f35910c commit e6bfae0
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 9 deletions.
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();
}
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();
}
2 changes: 1 addition & 1 deletion html/funcionario/informacao_funcionario.php
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@ function clicar(id)
$resultado_situacao = mysqli_query($conexao, $result_situacao);
while($row_situacao = mysqli_fetch_assoc($resultado_situacao)){?>
<option value = "<?php echo $row_situacao['id_situacao']; ?>">
<?php echo $row_situacao['situacoes'];?>
<?php echo htmlspecialchars($row_situacao['situacoes']);?>
</option> <?php
}
?>
Expand Down
2 changes: 1 addition & 1 deletion html/funcionario/profile_funcionario.php
Original file line number Diff line number Diff line change
Expand Up @@ -1062,7 +1062,7 @@ class="form-control serie_reservista" maxlength="3"
<option selected disabled>Selecionar</option>
<?php
while ($row = $situacao->fetch_array(MYSQLI_NUM)) {
echo "<option value=" . $row[0] . ">" . $row[1] . "</option>";
echo "<option value=" . $row[0] . ">" . htmlspecialchars($row[1]) . "</option>";
}
?>
</select>
Expand Down

0 comments on commit e6bfae0

Please sign in to comment.