Foros del Web » Programando para Internet » PHP »

Como Agregar Seguridad en formulario?

Estas en el tema de Como Agregar Seguridad en formulario? en el foro de PHP en Foros del Web. Junto con saludar, quisiera nuevamente molestarlos, estoy realizando mi sitio .en php y mysql, con dreamweaver. y el problema es que estoy agregando un formulario. ...
  #1 (permalink)  
Antiguo 15/04/2014, 10:57
 
Fecha de Ingreso: marzo-2014
Mensajes: 56
Antigüedad: 10 años, 1 mes
Puntos: 1
Como Agregar Seguridad en formulario?

Junto con saludar, quisiera nuevamente molestarlos, estoy realizando mi sitio .en php y mysql, con dreamweaver. y el problema es que estoy agregando un formulario. y a este quisiera agregarle seguridad.

Código PHP:
if (!function_exists("GetSQLValueString")) {
function 
GetSQLValueString($theValue$theType$theDefinedValue ""$theNotDefinedValue ""
{
  if (
PHP_VERSION 6) {
    
$theValue get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  }

  
$theValue function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

  switch (
$theType) {
    case 
"text":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;    
    case 
"long":
    case 
"int":
      
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
      break;
    case 
"double":
      
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
      break;
    case 
"date":
      
$theValue = ($theValue != "") ? "'" $theValue "'" "NULL";
      break;
    case 
"defined":
      
$theValue = ($theValue != "") ? $theDefinedValue $theNotDefinedValue;
      break;
  }
  return 
$theValue;
}
}

$editFormAction $_SERVER['PHP_SELF'];
if (isset(
$_SERVER['QUERY_STRING'])) {
  
$editFormAction .= "?" htmlentities($_SERVER['QUERY_STRING']);
}

if ((isset(
$_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  
$insertSQL sprintf("INSERT INTO tblcontacto (StrNombre, StrMail, intTel) VALUES (%s, %s, %s)",
                       
GetSQLValueString($_POST[''], "text"),
                       
GetSQLValueString($_POST['StrMail'], "text"),
                       
GetSQLValueString($_POST['intTel'], "text"));

  
mysql_select_db($database_con_pro$con_pro);
  
$Result1 mysql_query($insertSQL$con_pro) or die(mysql_error());
}
?> 

Código PHP:
<div id="mainContent">
      <form action="<?php echo $editFormAction?>" method="post" id="form1">
        <table>
          <tr valign="baseline">
            <td align="right">Nombre:</td>
            <td><span id="sprytextfield1">
              <input type="text" name="StrNombre" value="" size="32" />
            <span class="textfieldRequiredMsg">Se necesita un valor.</span></span></td>
          </tr>
          <tr valign="baseline">
            <td align="right">Mail:</td>
            <td><span id="sprytextfield2">
            <input type="text" name="StrMail" value="" size="32" />
            <span class="textfieldRequiredMsg">Se necesita un valor.</span></span></td>
          </tr>
          <tr valign="baseline">
            <td align="right">Telefono:</td>
            <td><span id="sprytextfield3">
              <input type="text" name="intTel" value="" size="32" />
            <span class="textfieldRequiredMsg">Se necesita un valor.</span></span></td>
          </tr>
          <tr valign="baseline">
            <td align="right">&nbsp;</td>
            <td><input type="submit" value="Enviar" /></td>
          </tr>
        </table>
        <input type="hidden" name="MM_insert" value="form1" />
      </form>
La idea que en ningún campo puedan meter caracteres como < > / \ = $ o los que mas adelante pueda considerar como peligroso, he estado leyendo, pero no entiendo o no se donde tengo que insertar ese código.

Se agradece su ayuda =D

A algun mod, favor cambiar nombre de tema a Seguridad en formulario.

Gracais y disculpen.

Gracias !!
  #2 (permalink)  
Antiguo 15/04/2014, 16:46
Avatar de Cuervoo  
Fecha de Ingreso: octubre-2013
Mensajes: 165
Antigüedad: 10 años, 6 meses
Puntos: 43
Respuesta: Subir Imagenes PHP

usá mysqli, http://www.php.net/manual/es/book.mysqli.php, y fijate el método prepare para meter variables. Te vas a ahorrar andar pensando tanto en la seguridad.

Código PHP:
Ver original
  1. if (PHP_VERSION < 6) {
  2.     $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
  3.   }

y en esa línea, todavía no hay versión 6, recién salió la 5.6 asique siempre va a entrar al if
  #3 (permalink)  
Antiguo 22/04/2014, 09:42
 
Fecha de Ingreso: marzo-2014
Mensajes: 56
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: Subir Imagenes PHP

No sirve, aun siguen pasando ¬¬ \\ y otros caracteres que no quiero.
Me gustaría meter una cadena con los caracteres que si están permitidos, pero no se donde integrar esos caracteres.
Saludos y gracias por su ayuda.

Última edición por KalSmith; 22/04/2014 a las 09:53
  #4 (permalink)  
Antiguo 22/04/2014, 15:19
Avatar de jonni09lo
Colaborador
 
Fecha de Ingreso: septiembre-2011
Ubicación: Estigia
Mensajes: 1.471
Antigüedad: 12 años, 7 meses
Puntos: 397
Respuesta: Subir Imagenes PHP

Qué trataste de hacer? Te dijeron que usaras mysqli

Por favor danos un ejemplo de lo que quieres guardar en tú base de datos y dinos qué es lo que se guarda

Saludos
__________________
Haz preguntas inteligentes-Como ser Hacker
No hacer preguntas por mensaje privado. No sólo no es inteligente sino que es egoísta.
  #5 (permalink)  
Antiguo 23/04/2014, 06:00
 
Fecha de Ingreso: marzo-2014
Mensajes: 56
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: Subir Imagenes PHP

Cita:
Iniciado por jonni09lo Ver Mensaje
Qué trataste de hacer? Te dijeron que usaras mysqli

Por favor danos un ejemplo de lo que quieres guardar en tú base de datos y dinos qué es lo que se guarda

Saludos

El formulario que tengo es de inserción de registros, pera que un usuario se contacte, pero este "registro" se queda guardado en la base de datos, el tema, que me deja ingresar los caracteres como el "\" o "/" y demases caracteres como "!"#$%&/()=<>".

Pude lograr evitar la inserción de estos caracteres, pero con el Javascrip activado, pero si lo desactivan pueden volver ingresar esos caracteres y lo quiero es que yo pueda determinar los caracteres que se pueden ingresan. como los A-Z 0-9 @ ._-, pero a nivel php.


Gracias !
  #6 (permalink)  
Antiguo 23/04/2014, 08:26
 
Fecha de Ingreso: mayo-2013
Ubicación: Lima
Mensajes: 5
Antigüedad: 10 años, 11 meses
Puntos: 0
Respuesta: Como Agregar Seguridad en formulario?

Hola estimado KalSmith, es muy importante el tema de la seguridad al momento de realizar inserción de registros a una DB, ya que no podemos confiarnos por los datos que puedan ingresar los usuarios.

Hiendo al grano, si lo que deseas es filtrar los datos y excluir algunas etiquetas te recomiendo utilizar esta función.

Código PHP:
Ver original
  1. <?php
  2. function sanitize($var){
  3.     $var = addslashes($var);
  4.     $var = strip_tags($var,'<p><a>');
  5.     $var = htmlentities($var,ENT_QUOTES,"UTF-8");
  6.     return $var;
  7. }
  8. ?>


strip_tags se encarga de retirar las etiquetas de html y php, y a su vez te permite ingresar con que etiquetas si deseas trabajar en el caso <p> y <a>.

Saludos.
  #7 (permalink)  
Antiguo 23/04/2014, 10:12
 
Fecha de Ingreso: marzo-2014
Mensajes: 56
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: Como Agregar Seguridad en formulario?

Cita:
Iniciado por mvpfrans Ver Mensaje
Hola estimado KalSmith, es muy importante el tema de la seguridad al momento de realizar inserción de registros a una DB, ya que no podemos confiarnos por los datos que puedan ingresar los usuarios.

Hiendo al grano, si lo que deseas es filtrar los datos y excluir algunas etiquetas te recomiendo utilizar esta función.

Código PHP:
Ver original
  1. <?php
  2. function sanitize($var){
  3.     $var = addslashes($var);
  4.     $var = strip_tags($var,'<p><a>');
  5.     $var = htmlentities($var,ENT_QUOTES,"UTF-8");
  6.     return $var;
  7. }
  8. ?>


strip_tags se encarga de retirar las etiquetas de html y php, y a su vez te permite ingresar con que etiquetas si deseas trabajar en el caso <p> y <a>.

Saludos.

Disculpa y eso en que parte de mi código lo inserto =D

Etiquetas: formulario, html, imagenes, mysql, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:31.