PHP - Como protegerme de Inyecciones SQL ?

   
Vista:

Como protegerme de Inyecciones SQL ?

Publicado por EfrainMejiasC (45 intervenciones) el 26/08/2012 13:10:41
hola
Me gustaria tutoriales o codigo sobre como proteger mi sitio de piratas informaticos, Inyecciones SQL y XSS ??

Por otra parte consegui este codigo para filtrar datos a la hora de insertar registrosen mi DB
pero tengo dudas sobre las palabras reservadas y funciones q cumplen y otra cosa aunque ese archivo se incluye como required("FiltroDatos.php") lo que esta contenido dentro es una funcion y no se si se esta ejecutando o no, ya que no veo donde es llamada a menos que se invoque solo con el
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
required("FiltroDatos.php")
//FiltroDatos.php con estofiltro los datos que se van insertar en la DB
<?php
function sqlValue($value, $type) {//AL usar required("FiltroDatos.php") se invoca????
  $value = get_magic_quotes_gpc() ? stripslashes($value) : $value;
  $value = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($value) : mysql_escape_string($value);
  switch ($type) {
    case "text":
      $value = ($value != "") ? "'" . $value . "'" : "NULL";
      break;
    case "int":
      $value = ($value != "") ? intval($value) : "NULL";
      break;
    case "double":
      $value = ($value != "") ? "'" . doubleval($value) . "'" : "NULL";
      break;
    case "date":
      $value = ($value != "") ? "'" . $value . "'" : "NULL";
      break;
  }
  return $value;
}
?>
 
 
//InsertarDatos.php aqui inserto en DB
<?php
 
error_reporting(0);
require("FiltroDatos.php");  aqui se incluye el archivo
$host="localhost";
$user="root";
$pw="";
$db="inicio";
 
 
$flag=null;
$pathDestino="Fotos/";
 
if ($_POST["action"]){
opendir($pathDestino);
$flag = $pathDestino.$_FILES["archivo"]["name"];
copy($_FILES["archivo"]["tmp_name"],$flag);
$nombre=$_FILES["archivo"]["name"];}
 
if($_POST["guardar"])
{
 
if ($_POST['cedula'] && $_POST['nombre'] )
{
$cnx = mysql_connect($host,$user,$pw) or die ("PROBLEMAS DE CONEXION 1");
       mysql_select_db($db,$cnx) or die ("PROBLEMAS DE CONEXION 2");
 
mysql_query ("INSERT INTO extensa
(Cedula,Nombre,TipoTrabajador,ClaseTrabajador,FechaIngreso,Observacion,Path) VALUES 
('".$_POST["cedula"]."','".$_POST["nombre"]."','".$_POST["tipo"]."','".$_POST["clase"]."'
, '".date("Y-m-d")."','".$_POST["observacion"]."','".$_POST["dir"]."')",$cnx);
 
header("Locationsindex.php");
echo "OPERACION EXITOSA";
}
else
      {
	  echo ("Debe Suministrar Datos para todos los Campos");
	  }
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Como protegerme de Inyecciones SQL ?

Publicado por xve (5523 intervenciones) el 26/08/2012 16:44:23
Hola, nosotros utilizamos una clase para sanitizar todos los valores devueltos por un formulario... aquí lo tienes publicado:
http://www.lawebdelprogramador.com/codigo/PHP/2208-Clase_para_sanitizar_los_parametros_de_un_formulario.html

Espero que te sirva...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar