Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate

Autor Topic: Consejo PHP  (Visto 939 veces)

0 Miembros and 1 Guest are viewing this topic.

Offline ediiinson Posteado: November 12, 2016, 01:00:57 PM

  • 0 puntos por ventas
  • *
  • Rank: Usuario activo
  • Posts: 70
  • Gracias recibida: 6212
  • ve
serie de consejos para guiar a la mayoría de los novatos y la reducción de la posibilidad de su sitio web siendo "invadido" por SQL-inyección.

Bueno primero tiene que saber lo que es de inyección SQL.

SQL- la inyección es nada más que un intento de recuperación o campos vulnerabilidades o un enlace en el caso de un sitio web, estos campos están insertando código malicioso en un intento de invasión de su sitio web de aprovecharse de la falta de tratamiento de entradas de datos del sitio.

Ex: Formulario . Iniciar Sesión

? ¿cómo podemos evitar esto

. Es muy sencillo el tratamiento de las entradas de su sitio que se utilizan en las consultas en la base de datos

Si se utiliza el método antiguo de conectar algo como esto:


define ( "dbhost", "localhost");
definir ( "dbuser", "raíz");
define ( "dbpass", "");
define ( "dbname", "my_site")

(! ($ id = mysql_connect (dbhost, dbuser, dbpass))) si {
echo "no se pudo conectar con el servidor!";
} else {
mysql_select_db (DBNAME);
}

Sólo el tratamiento de las entradas, una de las formas de tratamiento sería así:

formulario de contacto:


<form id = "" method = "post">
<input type = "text" name = "nombre" id = "nombre" marcador de posición = "nombre" />
<br />
<input type = nombre de "contraseña" = "contraseña" id = "contraseña" marcador de posición = "contraseña" />
<br />

<input type = "submit" id = "submit" marcador de posición = "enviar" />
</ form>

Cuando recuperamos los valores introducidos en los campos anteriores simplemente utilizar la función addslashes añadiendo barras invertidas en cadena y  mysql_real_escape_string que elimina caracteres especiales cadena SQL ...

¿Cómo sería nuestra login.php archivo:


require_once "config.php";

// recuperar el nombre del formulario y de campo agrega barras
$ name = addslashes (mysql_real_escape_string ($ _POST [ 'nombre']));

// recuperar la contraseña campo de formulario y agrega barras
$ password = addslashes (mysql_real_escape_string $ _POST [ 'password']));
...
esto va a evitar hacer esto inyección SQL en sus campos.

pero no es un método más seguro que está utilizando el PDO en ternam sus consultas en la base de datos más segura que normalmente utiliza como en el ejemplo siguiente:


$ sql = $ pdo-> prepare ( "SELECT * FROM usuarios DONDE login = Y la contraseña = ");
$ SQL-> bind_param (1, $ _POST [ 'nombre'], DOP: : pARAM_STR);
$ SQL-> bind_param (2, $ _POST [ 'password'], DOP: : pARAM_STR);
$ SQL-> Execut ();

 "?"? "" Bueno, la primera línea se pone vemos que es un SQL normal de cadena ... pero tenga en cuenta que usted tiene en el lugar donde sería una variable a la consulta, estos son máscaras y utilizando bind_param para reemplazar el "?" con el valor correcto y hacer la consulta 

tenga en cuenta que la segunda y tercera línea tiene un número el valor recuperado de la forma y la otra función.

Bueno en el primer campo es el orden en una secuencia de "?" el segundo parámetro es la variable que recupera el valor de la forma y el tercer parámetro es el tipo de entrada, el bien no se requiere que el tercer parámetro, pero yo prefiero a poner ^^

, finalmente, el ejecutable  que, como su nombre indica se ejecuta el comando SQL en la base de datos , lo que hace que la segunda opción más segura que la primera o crear una función que identifica comandos SQL.

espero y les ayude en algo...

El Que Frao

Gracias:


Offline ZabiinoOo #1 Posteado: November 12, 2016, 01:24:35 PM

  • MAESTRO

  • US. DE HONOR

  • LEYENDA

  • Administrador
  • 0 puntos por ventas
  • *
  • Rank: Puto amo
  • Posts: 7.314
  • Gracias recibida: 126209
  • pe
Esta muy buena la guia, me intereso mucho solo que le falta un poco mas de orden para lograr un buen entendimiento en un ratico te la comodo y la pongo en practica para ver que tal, porque la verdad lei un fragmento y si tiene mucho que ver ya que via input text es que se hacen las inyecciones y si en algun input dejas que introduzcan tanto los caracteres que sean posible como cualquier tipo de cadenas php se torna facil a la hora de que te hagan una inyeccion




Prohibido pedir soporte via MP
Leer las reglas de cada seccion
we trust god

Solo usuarios registrados pueden comentar y agradecer, Logueate o Registrate


 

Related Topics

  Subject / Started by Replies Last post
2 Replies
903 Views
Last post April 26, 2018, 08:32:20 PM
by ezek
1 Replies
247 Views
Last post October 21, 2021, 02:46:57 AM
by shinji1311
0 Replies
154 Views
Last post June 05, 2023, 09:40:47 PM
by sh4ll3