Textual description of firstImageUrl

El descuido en T-SQL puede divulgar reglas privadas del negocio

Un alto porcentaje de la lógica del negocio se encuentra codificada en los procedimientos almacenados o Stored Procedures 

Por razones de seguridad, o por alguna otra razón, algunas veces es importante esconder la lógica del procedimiento almacenado. Existe en T-SQL una expresión para mandar a encriptar el texto del procedimiento almacenado que es WITH ENCRYPTION. Una vez que se encripta el procedimiento almacenado, no se puede obtener el texto original del mismo. Este texto debe ser copiado y guardado en un lugar seguro por el programador para su uso posterior. 

No sólo el texto del procedimiento almacenado estará fuera de la posibilidad de visualizar sino también el plan de ejecución quedará fuera del alcance y la pestaña de Plan de Ejecución se mostrará deshabilitada. Veamos.

Por ejemplo, si creamos un procedimiento almacenado encriptado con la cláusula WITH ENCRYPTION y luego lo ejecutamos teniendo la opción MS SQL Sever "Actual Execution Plan" activada, En el panel de resultados no obtendremos la pestaña Execution Plan como lo veremos enseguida en el ejemplo.

El siguiente procedimiento sirve para ilustrar este comportamiento:

/* Crear SP with Encryption */ 
CREATE PROCEDURE #EncriptadoSP
WITH ENCRYPTION 

AS
SELECT TOP  100 country, city, trafficcode 
FROM Office.Address
GO





Al ejecutar este procedimiento almacenado, observamos que no aparece la pestaña "Execution Plan" en el panel de resultados:

/* Ejecutar SP - Pestaña Execution Plan no aparece */ 
EXEC #EncriptadoSP
GO


Consulta SQL

La observación que debe hacerse es que al no mostrarse el Plan de Ejecución, SQL Server Management Studio está protegiendo tanto la confidencialidad del código, como la lógica de las reglas del negocio. Por qué? Porque a partir del plan de ejecución, el usuario final podría deducir la lógica detrás de la aplicación. 

Para evitar esta brecha de seguridad para los procedimientos almacenados encriptados, el SQL Management Studio no despliega el Plan de Ejecución.


No hay comentarios.:

Publicar un comentario