Forums:
Saludos,
Amigos muy buenas noches mi duda es.
Existe manera o saben de alguna pagina para ofuscar procedures, funciones, etc, etc en PostgreSQL
Gracias espero su pronta ya favorable respuesta
Saludos,
Amigos muy buenas noches mi duda es.
Existe manera o saben de alguna pagina para ofuscar procedures, funciones, etc, etc en PostgreSQL
Gracias espero su pronta ya favorable respuesta
Hay actualmente 0 usuarios conectados.
Por qué ofuscar?
Eso no iría en contra de la filosofía FOSS?
"Transporta un puñado de tierra todos los días y construirás una montaña" - Confucio
floss.iknaxio.net
Saludos iknaxio Bueno 1ero
Saludos iknaxio
Bueno 1ero como conocimiento general pero lo mas importante es porque asi me lo pidio el cliente :-P
¿Eso dicen las mejores prácticas?
Yo pienso que nuestra tarea es educar al cliente respecto a temas de las mejores prácticas.
Recuerda: Los procedimientos y funciones son código, y dicho código debe ser bien elaborado, estructurado y documentado para que otro programador o dba lo lean.
Parafraseo lo que tu cliente pide y pregunto a la vez: ¿y si se pierde el código para descifrar, cómo harías para volverlo a tener como código legible para un ser humano?
No soy DBA, pero aparentemente en MySQL y PostgreSQL no existen métodos para tal fin. Muy por el contrario, en MS SQL-Server abunda la información aquí y acá -por citar unos breves ejemplos- respecto al tema. ¡Qué casualidad!, ¿verdad?
En este enlace en inglés te explican por qué no es una buena idea hacer eso.
Lo más sano en este caso y mi sugerencia de acuerdo a mi experiencia, es que te crees un usuario con los derechos necesarios para lectura o modificación de dichos objetos de la base de datos y le asignes las claves apropiadas y listo.
Saludos cordiales.
Carlos Julio Pérez Quizhpe
Full stack developer
https://ec.linkedin.com/in/carlosjulioperez
Obfuscacion
Buen Día Carlos,
[quote]Yo pienso que nuestra tarea es educar al cliente respecto a temas de las mejores prácticas.
Recuerda: Los procedimientos y funciones son código, y dicho código debe ser bien elaborado, estructurado y
documentado para que otro programador o dba lo lean.
Para fraseo lo que tu cliente pide y pregunto a la vez: ¿y si se pierde el código para descifrar, cómo harías para volverlo a tener como
código legible para un ser humano?[/quote]
Tienes toda la razon, gran parte de mi propuesta fue plantear todos los escenarios posibles y en el peor de los casos que yo como principal
desarrollador del proyecto ya no este en mi cargo, pues dejar las directrices de todo para que el nuevo desarrollador no se de cabezazos}
contra la pared intentando comprender.
[quote]No soy DBA, pero aparentemente en MySQL y PostgreSQL no existen métodos para tal fin. Muy por el contrario, en MS SQL-Server
abunda la información aquí y acá -por citar unos breves ejemplos- respecto al tema. [/quote]
Si existe en postgreSQl pero lamentablemente es codigo cerrado desarrollado por EnterpriseDB
[quote]Lo más sano en este caso y mi sugerencia de acuerdo a mi experiencia, es que te crees un usuario con los derechos necesarios
a lectura o modificación de dichos objetos de la base de datos y le asignes las claves apropiadas y listo.[/quote]
Bueno el temor de mi cliente es por la guerra cibernetica que se ha dado en los ultimos días, la verdad soy consciente de que hubieron
mas infiltrados en el ataque con ganas de dañar las cosas antes solucionarlas, y siempre tendremos ese tipo de ataques.
No creo que simplemente sea cosa de crear usuarios y privilegios, si este escenario ya ha sido probado por ti, pues me gustaria me encamines un
poco en el tema.
Gracias.
Saludos cordiales.
Saludos
Si configuras bien tu server linux te evitarás muchos de los problemas de seguridad informática.
Otra opción que se me ocurre es la siguiente:
Si tienes código sensible, la puedes grabar en un campo CLOB en una tabla y a ese contenido le aplicas el cifrado SHA1 o SHA2, luego lo descrifras y lo ejecutas en tiempo de ejecución dependiendo del lenguaje de programación que estés empleando.
Hay muchas maneras de hacer lo que te planteo, e incluso mejores. Sólo es cuestión de barajar opciones.
Saludos cordiales.
Carlos Julio Pérez Quizhpe
Full stack developer
https://ec.linkedin.com/in/carlosjulioperez
Mmm pero Carlos no seria lo
Mmm pero Carlos no seria lo mismo que encriptar con una funcion o procedure a la vez los precedimientos y funciones?
ya que eso creo que tardaria mucho el proceso al decifrar ya que mi sistema es un sistema de facturacion por volumen 20000 fact x mes
Esa es una de las razones
Esa es una de las razones para no ofuscar el código a ejecutarse, a no ser que lo que generes sea interpretado por otra "máquina virtual" como el bytecode por ejemplo o soluciones similares para PHP que tienen una librería que incluso dice acelerar la ejecución de estos pedazos de código ofuscados, creo que deberías plantear al cliente que la solución que pide para que sea eficiente le va a costar licencias (las de EnterpriseDB) que creo que caen en el escenario que he descrito ...
bye
;)
PD: al que quiere celeste que le cueste :D
Ya veo...
Recién comentas que el proceso que necesitas es transaccional y que es parte crítica del core del negocio.
Ahí no se puede aplicar lo que te comentaba porque como vos y deathUser comentan, consumirían valiosos ciclos del procesador para poder realizar la propuesta que lancé.
Hay que revisar más opciones y una de esas es conseguirte la licencia comercial de PGSQL.
Tampoco has mencionado el lenguaje de programación. Eso es lo que hay que considerar para esbozar la solución propuesta.
Saludos cordiales.
Carlos Julio Pérez Quizhpe
Full stack developer
https://ec.linkedin.com/in/carlosjulioperez
CREATE OR REPLACE FUNCTION
CREATE OR REPLACE FUNCTION plpgsqlobf_call_handler()
RETURNS language_handler AS
'/tools/plpgsqlobf', 'plpgsqlobf_call_handler'
LANGUAGE 'c' VOLATILE
COST 1;
ALTER FUNCTION plpgsqlobf_call_handler() OWNER TO postgres;
CREATE OR REPLACE FUNCTION plpgsqlobf(oid)
RETURNS void AS
'/lib/plpgsqlobf', 'plpgsqlobf'
LANGUAGE 'c' VOLATILE
COST 1;
ALTER FUNCTION plpgsqlobf(oid) OWNER TO postgres;
CREATE TRUSTED PROCEDURAL LANGUAGE 'plpgsqlobf'
HANDLER plpgsqlobf_call_handler
VALIDATOR plpgsqlobf;
ALTER LANGUAGE plpgsqlobf OWNER TO postgres;
Bueno en este caso todo seria
Bueno en este caso todo seria de lado del server por eso ayudaria mucho al performance lo desarrolle en C#
Páginas