Autor
|
Tema: Ayuda Consejos Para Evitar SQL INJECTION (Leído 2,973 veces)
|
SrTrp
Desconectado
Mensajes: 327
Script/C#
|
Bueno me acaban de hacer una SQL injection, y se logearon en mi cuenta de administrador, y decidi agregarle cifrado a mis contraseñas tambien captchas, que me recomiendan para hacer un bloqueo y evitar estos SQL INJECTIONS uso en mi login el metodo $_POST pero me dijieron que es mejor el metodo $_GET, si me pudiesen dar unos consejos para como poder bloquear las puertas mas faciles para evitar estos SQL injections.
|
|
« Última modificación: 19 Febrero 2017, 03:21 am por SrTrp »
|
En línea
|
|
|
|
engel lex
|
uso en mi login el metodo $_POST pero me dijieron que es mejor el metodo $_GET quien te dijo eso consume drogas baratas... lo haces por get y todas las contraseñas quedarán guardadas como url en el historial... para evitar sql inyection, se evita en lo posible cualquier pase de datos directos enter post y la DB poe ejemplo para usuario $user = $_POST["user"]; $pass = $_POST["pass"]; //aquí el usuario será convertido a una representación hexadecimal //se pasa como hexadecimal a la db y se pide que la compare quitando el hexadecimal y comparando en "binario" $sql = "SELECT pass FROM users WHERE name = UNHEX('$variable_segura')"; // ejecutar sql.... if(password_verify($pass, $resultado_sql)){ echo "usuario correcto"; }else{ echo "usuario incorrecto"; }
hay más aproximaciones que usar hexadecimal, puedes usar prepared query, puedes usar base 64, puedes guardar los usuarios como hash... etc claro para esto tuviste que guardar tus contraseñas en tu DB usando password_hash$hash = password_hash($contraseña_a_salvar, PASSWORD_DEFAULT);
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
SrTrp
Desconectado
Mensajes: 327
Script/C#
|
Eso viene siendo para el loggearse verdad? yo estoy usando la función htmlspecialchars para los caracteres pero igual se mejoraría pasarlo a hexadecimal? <?php function antiscript($DG) { return $data; } include ("Encoding.php"); require("conex.php"); $username= antiscript($_POST['usuario']); $pass= antiscript($_POST['pass']); $sql=mysql_query("SELECT * FROM users WHERE usuario='$username'"); $descript = Encrypter::decrypt($f['password']); if($pass==$descript){ $_SESSION['id']=$f['id']; $_SESSION['usuario']=$f['usuario']; ?>
hay más aproximaciones que usar hexadecimal, puedes usar prepared query, puedes usar base 64, puedes guardar los usuarios como hash... etc claro para esto tuviste que guardar tus contraseñas en tu DB usando password_hash$hash = password_hash($contraseña_a_salvar, PASSWORD_DEFAULT);
para cifrar las contraseñas las hago de esta manera, cual sería la mas a decuada la que me has mencionado o esta? public static function encrypt ($SA) { return $EN; }
También me han recomendado implementar el $_SERVER para evitar los ataques XSS pero no se como implementarlo en mi formulario. action="<?=$_SERVER['PHP_SELF'];?>">
· No hagas doble post, usa el botón modificar >aquí las reglas del foro -Engel Lex
|
|
« Última modificación: 19 Febrero 2017, 02:49 am por engel lex »
|
En línea
|
|
|
|
engel lex
|
en general el metodo de cifrado está bien pero lo veo sobre elaborado... el que te dí es simple y directo, guarda un password normalmente en blowfish + salt no uses mysql está ya obsoleto! si estnas al manual de php verás esto por todos lados con el hex, no hay inyección que pase, ya que el contenido es convertido a una representación hexadecimal y luego su reconversión es comparada... para que pueda inyectarse, se necesita que al query llegue algún contenido interpretable por mysql, y en este caso, no lo hará
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
SrTrp
Desconectado
Mensajes: 327
Script/C#
|
Ooo ya lo cambiare a mysqli en cuanto pueda Ya implemente lo de hexadecimal de los usuarios gracias En cuanto lo del action="<?=$_SERVER['PHP_SELF'];?>">
como puedo integrarlo ya que quisiera también aprevenir para los XSS
|
|
|
En línea
|
|
|
|
engel lex
|
los xss es donde tengas cosas que los usuarios guarden en la base de datos y luego se muestre, o donde algún parametro get o post se muestre en el html... donde tienes algo de eso, no hay una solución universal a xss si no, fuera una función integrada a php y listo XD
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
SrTrp
Desconectado
Mensajes: 327
Script/C#
|
los xss es donde tengas cosas que los usuarios guarden en la base de datos y luego se muestre, o donde algún parametro get o post se muestre en el html... donde tienes algo de eso, no hay una solución universal a xss si no, fuera una función integrada a php y listo XD
Ooo Gracias por la explicación y por la solución que me diste me ah servidor
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Ayuda: Consejos para mi blog
Foro Libre
|
Flamer
|
9
|
3,378
|
18 Febrero 2016, 14:34 pm
por ivancea96
|
|
|
Consejos para evitar ser infectado con virus en Facebook
Noticias
|
wolfbcn
|
0
|
1,170
|
22 Febrero 2017, 14:30 pm
por wolfbcn
|
|
|
Consejos para evitar 'verlo todo' en Facebook
Noticias
|
wolfbcn
|
0
|
1,150
|
24 Marzo 2017, 02:10 am
por wolfbcn
|
|
|
Ayuda para evitar poner flotante/double
Programación C/C++
|
lm_pa
|
1
|
1,686
|
11 Abril 2017, 04:18 am
por Z@@K
|
|
|
programas para SQL injection?
Análisis y Diseño de Malware
|
Trollwer
|
1
|
3,236
|
10 Mayo 2017, 22:50 pm
por MCKSys Argentina
|
|