
uso de la esteganografía en php
Publicado por Willian (1 intervención) el 01/12/2021 10:09:00
Saludos.
Estoy tratando de usar la esteganografía para un sistema hecho con php a pedido de la materia de seguridad informática en la universidad. Debo darle al usuario la posibilidad de escoger una imágen y agregar una palabra secreta que se ocultará en la imágen, por cuestiones de tiempo y otras cosas nos piden que hagamos una práctica sencilla en la que un usuario ya registrado(administrador), al querer entrar por ejemplo a modificar los permisos o alguna otra acción delicada del sistema, el sistema(valga la redundancia), le pida la imagen de seguridad y la palabra secreta y si coinciden, darle acceso a esa parte del sistema.
Ya logré que el usuario escoja la imágen e introduzca la palabra y el sistema procese la imagen con la palabra y me la guarde en una carpeta del sistema, pero estoy atascado en como pedir la imágen, validarla y si coincide darle acceso a esa parte del sistema
El código para guardar la imágen con la palabra es este:
Es una ventana modal y he hecho todo el código en la vista(que no es lo ideal) y al final del archivo agregué esto:
Instalé composer e instalé la dependencia KzykHys\Steganography.
Para pedir la imágen se me ocurre una ventana modal que muestre de 3 a 4 imágenes(exigencias de la materia)entre ellas la del usuario con un campo para introducir la palabra y decodificar usando la clase Steganography pero no tengo idea de como validar la imágen con la palabra secreta.
La ventana aparece al momento de querer ingresar a modificar los permisos de los usuarios, el código es el siguiente:
¿Alguna sugerencia?
S.O : Windows 7 32 bits
Servidor: Xampp
Versión de PHP:7.0.33
Gracias.
Estoy tratando de usar la esteganografía para un sistema hecho con php a pedido de la materia de seguridad informática en la universidad. Debo darle al usuario la posibilidad de escoger una imágen y agregar una palabra secreta que se ocultará en la imágen, por cuestiones de tiempo y otras cosas nos piden que hagamos una práctica sencilla en la que un usuario ya registrado(administrador), al querer entrar por ejemplo a modificar los permisos o alguna otra acción delicada del sistema, el sistema(valga la redundancia), le pida la imagen de seguridad y la palabra secreta y si coinciden, darle acceso a esa parte del sistema.
Ya logré que el usuario escoja la imágen e introduzca la palabra y el sistema procese la imagen con la palabra y me la guarde en una carpeta del sistema, pero estoy atascado en como pedir la imágen, validarla y si coincide darle acceso a esa parte del sistema
El código para guardar la imágen con la palabra es este:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<div id="modalImagen" class="modal">
<div class="modal-content">
<h5>Imágen seguridad</h5>
<p><strong>Escoge una imágen y escribe una palabra de seguridad</strong></p>
<p><strong>Peso máximo 1 Mb / Sólo PNG.</strong></p>
<div class="col s12">
<form method="POST" enctype="multipart/form-data" id="formulario">
<div class="row">
<div class="input-field col s12">
<center>
<!-- <img src="vista/config/img/imagenSeguridad/boxed-bg.png"-->
<div> <img src="vista/config/img/boxed-bg.png" class="img-circle previsualizar" width="150" style="border: 1px solid" /></div>
<input type="file" id="imgEncriptada" name="nuevaImagen" required style="color: transparent;">
</center>
</div>
</div>
<div class="input-field col s9 m10">
<i class="icon-vpn_key prefix"></i>
<input name="palabraSecreta" type="password" class="validate" required>
<label for="palabraSecreta">Palabra de seguridad</label>
</div>
<center>
<button type="submit" class="btn btn-primary yellow darken-3 btn-small" name="guardar">Guardar
</button>
</center>
<?php
if (isset($_POST['guardar'])) {
$temporal = $_FILES["nuevaImagen"]["tmp_name"];
$palabraS = $_POST["palabraSecreta"];
$nombre = $_FILES["nuevaImagen"]["name"];
}
?>
</form>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-green btn-flat">Cerrar</a>
</div>
</div>
Es una ventana modal y he hecho todo el código en la vista(que no es lo ideal) y al final del archivo agregué esto:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
// procesar la imágen
$directorio = 'vista/config/img/imagenSeguridad/';
$aleatorio = mt_rand(100, 999);
$procesar = new KzykHys\Steganography\Processor();
if (isset($temporal) && isset($palabraS)) {
$imgProcesada = $procesar->encode( $temporal, $palabraS);
// var_dump($imgProcesada);
$imgProcesada->write($directorio.$aleatorio.".png");
echo '<script>
swal({
type: "success",
title: "¡Imágen de seguridad guardada correctamente!",
showConfirmButton: true,
confirmButtonText: "Cerrar"
}).then(function(result){
if(result.value){
window.location = "?url=seguridad&opcion=imagenSeguridad";
}
});
</script>';
}
?>
<!-- Para evitar que al recargar la página se vuelva a enviar el archivo -->
<script type="text/javascript">
if ( window.history.replaceState ) {
window.history.replaceState( null, null, window.location.href );
}
</script>
Instalé composer e instalé la dependencia KzykHys\Steganography.
Para pedir la imágen se me ocurre una ventana modal que muestre de 3 a 4 imágenes(exigencias de la materia)entre ellas la del usuario con un campo para introducir la palabra y decodificar usando la clase Steganography pero no tengo idea de como validar la imágen con la palabra secreta.
La ventana aparece al momento de querer ingresar a modificar los permisos de los usuarios, el código es el siguiente:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<div id="modalSeleccionarImagen" class="modal">
<div class="modal-content">
<h5>Imágen seguridad</h5>
<p><strong>¡Atención!, se dispone a ingresar a una parte delicada del sistema.</strong></p>
<p><strong>Seleccione su imágen y escriba su palabra de seguridad
Si no dispone de una, diríjase a: Seguridad - Imágen seguridad</strong></p>
<div class="col s12">
<form method="POST" >
<div class="row">
<div class="input-field col s12">
</div>
</div>
<div class="input-field col s9 m10">
<i class="icon-vpn_key prefix"></i>
<input name="palabraSecreta" type="password" class="validate" required>
<label for="palabraSecreta">Palabra de seguridad</label>
</div>
<center>
<button type="button" class="btn btn-primary yellow darken-3 btn-small" name="guardar">Acceder
</button>
</center>
</form>
</div>
</div>
<div class="modal-footer">
<a href="#!" class="modal-close waves-effect waves-green btn-flat">Cerrar</a>
</div>
</div>
S.O : Windows 7 32 bits
Servidor: Xampp
Versión de PHP:7.0.33
Gracias.
Valora esta pregunta


0