Tienes mucha razón¡¡¡ No lo había visto de ese modo¡¡ Aqui empezamos a trabajar con el Zend Framework lo cual yo considero que tiene bastante seguridad dada su estructura y sus clases. Pienso yo que no es necesario crear funciones sino simplemente usar las bondades del Framework y como dices validar los datos antes de que se inserten. No se si tú hayas trabajado con éste y si en ese caso puedas reafirmar o corregir mi idea.

Como sea, no me gustaría quedarme con el NO PUDE hacer la función y mira... según la documentación:
LANGUAGE langname
    | IMMUTABLE | STABLE | VOLATILE
    | CALLED ON NULL INPUT

he construido la función así:

CREATE FUNCTION add_fila(numeric,varchar,varchar, varchar,interval,numeric, numeric,numeric,numeric,char) RETURNS integer AS 'BEGIN INSERT INTO video values($1,$2,$3,$4,$5,$6,$7,$8,$9,$10); return 1; END' LANGUAGE 'plpgsql' CALLED ON NULL INPUT;
CREATE FUNCTION

pero al darle los argumentos...

select add_fila(20,'Pumas Campeon','NULL','NULL','NULL','NULL',1,1,1,'NULL');

:S

______________________________________________________________________
Alvaro Herrera <alvhe...@alvh.no-ip.org> ha escrito:

jsgar...@seguridad.unam.mx escribió:
Gracias Álvaro por la respuesta, en un momento más probaré. Quisiera
pedirte como un gran favor que me platicaras por qué no debería usar una
función para un insert. Esto me lo han pedido aqui,

Porque no tiene ningún propósito ... ?

argumentando una mayor seguridad con el fnde evitar por ejemplo SQL
Injection.

Absurdo.  Se puede hacer una inyección de SQL en un llamado a función
también.  Necesitas protegerte de estos casos _antes_ de pasarle
cualquier cosa a la BD, independiente de si es un INSERT o un llamado a
función.

Podrías aconsejarme algo???

"No creas todo lo que te digan" ¿sirve?

--
Alvaro Herrera                        http://www.advogato.org/person/alvherre
"Use it up, wear it out, make it do, or do without"
--
TIP 7: no olvides aumentar la configuración del "free space map"




----------------------------------------------------------------
This message was sent using IMP, the Internet Messaging Program.

Attachment: binVHUc9j2U34.bin
Description: Clave PGP pública

--
TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net

Responder a