Buenos dias comunidad! de vuelta con otra duda.
Estube haciendo un Encrypt-Decrypt en Uuencode, lo deben conocer los que programan php. Es una simple encryptacion que hace una funcion.
Pero tengo un problema, es mejor que lo vean ustedes mismos. Les dejo un video y el codigo aver si alguien puede darme una mano como tapar esta vulnerabilidad!
<form action="encrypt.php" method="POST">
<center>
<font size="5"><b>Encrypt - Decrypt Uuencode</b></font><br />
<font size="-1" color="#333333">Code by Cronos</font><br /><br />
<input type="text" name="encryp" id="encryp" size="50"/>
<input type="submit" value="Encrypt" />
<br />
<?
if($_POST)
{
$encry = $_POST['encryp'];
echo convert_uuencode($encry);
}
?>
<br />
<input type="text" name="decryp" id="decryp" size="50"/>
<input type="submit" value="Decrypt" />
<br />
<?
if($_POST)
{
$decry = $_POST['decryp'];
echo convert_uudecode($decry);
}
?>
</center>
</form>
Saludos,, Cronos.-
bro envryp
(encrypt)
decryp (decrypt)
salu2
Disculpa, no entendi que quisiste decir. Si te refieres ah que coloque mal el name de una variable, no es eso ya las revise y estan bien escritas. Puede ser la ubicacion pero no creo, ya que veo todo en orden :/
EDITO: Al encryptar la palabra "Casa", la encrypta y la decrypta bien. Pero al encryptar la palabra "Password", esta se encrypta mal y desecrypta peor.. Pienso que puede ser por el codigo encryptado que queda, que me de error al querer mostrarlo o guardarlo por los caracteres. Estoy en lo correcto?
Saludos y gracias por comentar!
Estas usando un form para aser lo mismo por eso te tira ese error tienes que especificar el nombre de las variables y el nombre del form
PD: la etiqueta center ya es opsoleta... te invito a que revises los estandares de la w3.org y de php.net
y que uses el validador para revisar tu codigo HTML pero esto no es tu problema jjejeje el problema como dije es en los formularios y en las variables
tambien se escribe <?php no <?
aunque te funcione con el xampp o wapserver tus scripts no siempre van a funcionar si no escribes correctamente...
Por cada codigo php se usa un form diferente... :D
Bueno aca esta.. al igual puedes cambiar la declaracion por un HTML5 que eso te dara mas opciones :D
no tuve tiempo de validar el codigo porque actualmente no tengo ninguna web
deves de usar htmlspecialchars para escapar caracteres y evitar ese error.. espero te sirva XD
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="es" lang="es" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>titulo</title>
<style type="text/css">
#yo{background-color:#DF013A;
width:550px;
margin:0px auto;
padding:20px 20px 20px 20px;}
body{font-family:Arial; color:#FFF;}
h1{font-size:2em; color:#FFF; margin:0px 0px 0px 0px;}
h2{font-size:1em; color:#FFF; margin:0px 0px 20px 0px; text-align:right;}
#resultado, #resultado_dos, #encryp, #decryp{width:400px; font-size:1.5em;}
#resultado, #resultado_dos{margin:10px 0px 0px 0px;}
#boton{width:100px; text-align:center; background-color:#FA5882; font-size:1.5em; border:0px;}
#boton:hover{cursor:pointer; width:100px; text-align:center; background-color:#FFF; font-size:1.5em; border:0px;}
</style>
</head>
<body>
<form action="" method="POST" id="yo">
<h1>Encrypt - Decrypt Uuencode</h1><br />
<h2>Code para underc0de</h2>
<input type="text" name="encryp" id="encryp" />
<input type="submit" id="boton" value="Encrypt" />
<br />
<?php
error_reporting(E_ALL^E_NOTICE);
if($_POST["encryp"]!="")
{
$encry = $_POST['encryp'];
echo "<div id='resultado'>".htmlspecialchars(convert_uuencode($encry))."</div>";
}
?>
<br />
<input type="text" name="decryp" id="decryp" />
<input type="submit" value="Decrypt" id="boton" />
<br />
<?php
error_reporting(E_ALL^E_NOTICE);
if($_POST["decryp"]!="")
{
$decry = $_POST['decryp'];
echo "<div id='resultado_dos'>".htmlspecialchars(convert_uudecode($decry))."</div>";
}
?>
</form>
</body>
</html>
jejeje amigo solo debes poner lo que vas a inprimir dentro de htmlentites para que no ejecute los html ni los scripts asi:
<?php
if($_POST)
{
$encry = $_POST['encryp'];
echo htmlentites(convert_uuencode($encry));
}
?>
y
<?php
if($_POST)
{
$decry = $_POST['decryp'];
echo htmlentities(convert_uudecode($decry));
}
?>
y listo
Muchas gracias a ambos! Pero me quedo con la respuesta de kid_goth, no conocia esa funcion ya que recien me estoy iniciando. Al pareser esta funcion lo que hace es impedir que se ejecuten codigos html si se escribien, asi tapo la vulnerabilidad y el error que me daba :)
Muchas gracias a todos por ayudar, el problema ya esta resuelto!
Saludos,, Cronos.-