Foros del Web » Programando para Internet » PHP »

seguridad + llamar funciones - hackers

Estas en el tema de seguridad + llamar funciones - hackers en el foro de PHP en Foros del Web. Hola como están? Bueno mi pregunta es simple. Puede el usuario llamar de alguna forma a una función php? Según yo no, pero me gustaría ...
  #1 (permalink)  
Antiguo 21/07/2010, 20:50
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
seguridad + llamar funciones - hackers

Hola como están? Bueno mi pregunta es simple. Puede el usuario llamar de alguna forma a una función php? Según yo no, pero me gustaría asegurarme. Ya se que es código del lado del servidor, pero es posible?

El ejemplo seria así

archivo: noticiasTool.php
Código PHP:
Function eliminar($id)
{
       
//codigo para evitar inyeccion SQL

$link conectarse();
$q "DELETE FROM maestro WHERE id_maestro=$id";
mysql_query($q,$link) or die("error");

    
//otras operaciones

archivo noticias.php
Código HTML:
....
<body>

eliminada la noticia: 
     <?php 
        include("noticiasTool.php");

        $id = 5;
        echo $id;
       eliminar($id);
     ?>
</body>
...
la cosa esta asi:
lo general seria que al entrar al archivo noticias.php este incluya y llame a la funcion eliminar.

pero un hacker podria ir directo al archivo noticiasTool.php y llamar a la funcion eliminar() ?

lo que pasa es que estamos teniendo problemas con hacker y estamos tratando de defendernos. si alguien nos puede ayudar, se lo agradeceriamos mucho.

gracias
  #2 (permalink)  
Antiguo 21/07/2010, 20:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: seguridad + llamar funciones - hackers

Usa mysql_real_escape_string para que te evites problemas con inyecciones sql. Por lo demás, es más bien corroborar que los datos sean correctos. ¿Qué problema te está ocasionando?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/07/2010, 21:16
Avatar de yeudiel  
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años
Puntos: 1
Respuesta: seguridad + llamar funciones - hackers

No es posible que alguien pueda usar esa funcion, aun si el usuario accediera directamente al noticiasTool.php el servidor solo leería la funcion mas sin en cambio no la ejecutaria. Las funciones no se ejecutan hasta que tu las llamas, y solo pueden ser llamadas desde un script dentro del servidor.
  #4 (permalink)  
Antiguo 21/07/2010, 21:48
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: seguridad + llamar funciones - hackers

muchas gracias yuediel, me siento un poco mas seguro.

abimaelrc, gracias tambien por tu respuesta. exactamente no se como le hacen. cada que alguien inicia sesion en mi sistema, o aunque falle, soy notificado por correo electronico, hace unos dias me llegaron al rededor de 100 correos en un pediodo de 4 minutos. todos fallaron el inicio de sesion menos uno. la mayoria eran de tipo: ' or 1=1 #

pero estaban mucho otros que desconocia. el problema esta en que uno de ellos iniciaron sesion con una cuenta que ninca habia usado, y nadie sabia la contraseña. no me explico como la obtubieron.

pues estoy tratando de saber que tipos de ataques nos hacen para poder defendernos. muchas gracias. seguire indagando como lograron obtener el password.

muchas gracias.
  #5 (permalink)  
Antiguo 22/07/2010, 05:05
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: seguridad + llamar funciones - hackers

Lee sobre inyección SQL para que entiendas. Y no es que hayan descubierto tu contraseña. Es que no haz colocado seguridad en los valores de tu consulta. Estás ingresando directamente la variable sin antes evaluarla o depurarla.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #6 (permalink)  
Antiguo 22/07/2010, 05:36
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: seguridad + llamar funciones - hackers

por cierto hablando referente a este tema yo he estado busando informacion referente a como evitar Sql Injetion, entonces he visto muchos foros y demas cosas pero no estoy al 100 % convencido, entonces lei una funcion por aqui que es la siguiente

la llame segu.php

Código PHP:
<?php
function getClearString($var){
    if(!
is_array($var)){
        return 
addslashes(stripslashes(htmlentities($var)));
    } else {
        return 
$var;
    }
}
if(
is_array($_GET))
$_GET array_map("getClearString"$_GET);
if(
is_array($_POST))
$_POST array_map("getClearString"$_POST);
if(
is_array($_COOKIE))
$_COOKIE array_map("getClearString"$_COOKIE);
if(
is_array($_SESSION))
$_SESSION array_map("getClearString"$_SESSION);

?>
entonces segun el que la hizo (disculpa por no saber quien fue, me imagino que alguno de ustedes) dice que con solo hacerle un include en cada pagina funciona

Código PHP:
<? include("segu.php"); ?>
mi pregunta es
  1. Sera seguro este codigo para evitar el Sql Injection?
  2. Que hace exactamente este codigo?
  #7 (permalink)  
Antiguo 22/07/2010, 05:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: seguridad + llamar funciones - hackers

La mejor manera de evitar inyección sql es usar la función que te brinda PHP llamada mysql_real_escape_string. Es la recomendada.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #8 (permalink)  
Antiguo 22/07/2010, 06:00
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: seguridad + llamar funciones - hackers

y no se podria crear una funcion con mysql_real_escape_string para solo llamarla de cada pagina???


EDITO: estoy revisando el manual y tal parece que si s puede crear una funcion
  #9 (permalink)  
Antiguo 22/07/2010, 06:38
 
Fecha de Ingreso: junio-2010
Ubicación: Venezuela, Zulia
Mensajes: 686
Antigüedad: 13 años, 10 meses
Puntos: 55
Respuesta: seguridad + llamar funciones - hackers

hey disculpen mi ignorancia, pero no se como hacer funcionar mysql_real_escape_string y he estado leyendo el manual pero no doy para hacerlo funcionar
  #10 (permalink)  
Antiguo 22/07/2010, 17:05
 
Fecha de Ingreso: marzo-2009
Mensajes: 73
Antigüedad: 15 años, 1 mes
Puntos: 1
Respuesta: seguridad + llamar funciones - hackers

si trato de evitar la inyeccion sql solo que en elejemplo lo puse como una linea y comentada

johhan16, yo lo hago mas o menos asi

Código PHP:
$q sprintf("INSERT INTO mitabla1(campo1,campo2,campo3) VALUES('%s','%s','%s')",
     
comillas_inteligentes($_get["c1"]),
     
comillas_inteligentes($_get["c2"]),
     
comillas_inteligentes($_get["c3"]) );
mysql_query($q,$link) or die("ocurrio error"); 
aotroarchivos.php
Código PHP:
function comillas_inteligentes($valor)
{
    
// Retirar las barras
    
if (get_magic_quotes_gpc()) 
    {
        
$valor stripslashes($valor);
    }

    
// Colocar comillas si no es entero
    //if (!is_numeric($valor)) {
        
$valor mysql_real_escape_string($valor);
    
//}
    
    
return $valor;

este codigo es el resultado de mucho dias de investigacion y pruebas hace varios meses, cuando tambien tube problemas de hackers.

alomejor si se junta el codigo que pusiste + el que pongo sale algo bueno
solo faltaria confirmar (como bien dices) si realmente con solo incluirlo funciona
el codigo que pusiste. pd: si lo haces lo pegas aqui para que todos tengamos una referencia.

entonces si mi codigo funciona para evitar el sql inyection, de que otra forma pudieron hackearme?

Etiquetas: funciones, llamar, seguridad, hacking
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 10:55.