¿Hay alguna manera de ocultar/proteger/ofuscar los procedimientos almacenados de MS SQL?¿Cómo ofuscar SQL Sprocs?
Respuesta
Puedo entender vagamente el código de ofuscación si es extremadamente avanzado en lo que hace, pero creo que ofuscar su SQL puede no valer la pena.
De todos modos, una gran parte del SQL que he visto por aquí viene ofuscado como estándar.
Siempre puede escribir código ordinario en C# (o VB) y almacenarlo fuera de la base de datos en una DLL.
Entonces no tiene que preocuparse por ofuscar su SQL.
Sí, pero esos archivos DLL pueden descompilarse con la misma facilidad, por lo que tendría que ofuscarse, por lo que está de regreso en el cuadrado 1. –
Todo el ejecutable se puede descompilar e invertir. Entonces no puedes salir de la casilla 1. ¿Por qué molestarse? –
Si debe ocultarlo, ¿qué tal la cláusula "CON ENCRIPTACIÓN"?
ver la opción de cifrado para la declaración CREATE PROCEDURE.
Si usted está realmente preocupado por alguien entrar en la base de datos y ver la fuente para el procedimiento, entonces, como dijo S. Lott, que pueden portar el procedimiento en C#. Yo recomendaría LINQ.
Sin embargo, la base de datos en sí probablemente debería estar protegida de las personas que acceden al código para procedimientos que no deberían. Puede restringir los derechos de un usuario o grupo para que solo tengan acceso EXECUTE a un proceso si es necesario.
Puede usar la cláusula ENCRYPTION al crear el procedimiento almacenado.
Sin embargo, esto dependería de no dejar el SQL de origen en la máquina del cliente.
Consulte aquí para obtener más información:
http://msdn.microsoft.com/en-us/library/ms187926(SQL.90).aspx
No. Al menos, no de una manera que es anti-reversible. El mensaje "WITH ENCRYPTION" de SQL Server 2000 se puede invertir para obtener el texto original. El pseudocódigo y un script T-SQL que ilustra esto están aquí: http://education.sqlfarms.com/education/ShowPost.aspx?PostID=783
Nota: No lo he intentado con SQL 2005 o superior, pero supongo que es tan vulnerable ... Como el MSDN docs estado:
CIFRADO Indica que SQL Server convertir el texto original de la sentencia CREATE PROCEDURE para un formato ofuscado .
Énfasis mío.
Una opción sería colocar solo las partes sensibles del procedimiento almacenado en un procedimiento almacenado CLR y ofuscar ese ensamblaje con un producto de ofuscación profesional.
fácilmente reversible si sabes pero intimidante para que la mayoría de personas que empujan alrededor de código. hex codifica tu lógica de sproc y luego ejecuta con EXEC (@hexEncodedString).
ver esto post.
Publicación anterior, lo sé. Pero llegué aquí buscando '¿Por qué debería ofuscar SQL?' Acabo de instalar un producto gratuito llamado ApexSQL Refactor (sin afiliación) que ofrece un componente de ofuscación.
Ofrece varias opciones diferentes para hacer que su código sea difícil de leer. No estaba seguro de por qué querría que se me diera esa característica, ya que otros señalaron la capacidad de encriptar sus procedimientos almacenados. De todos modos, este es un ejemplo de la salida que puede devolver desde su función de ofuscación.
CrEAtE Procedure spInsertOrUpdateProduct @ProductNumber nVarChar(25),
@ListPrice Money aS IF exIsTS(selECt * FROm Production.Product WHere
[email protected] AnD ListPrice>1000) uPdatE Production.
Product sET ListPrice=(ListPrice-100) where ProductNumber=
@ProductNumber elsE INSerT intO Production.Product(ProductNumber,
ListPrice) SelECT @ProductNumber,@ListPrice GO SElEct * fRoM
Production.Product gO iNsERT iNTo Production.UnitMeasure(
UnitMeasureCode,Name,ModifiedDate) vAlUeS(N'FT2',N'Square Feet',
'20080923'); Go
- 1. ¿Puedo ofuscar el código SQL en MySQL?
- 2. Ofuscar el código PHP
- 3. ofuscar: hacer archivo-min.js?
- 4. androide: Proguard ofuscar problema
- 5. ofuscar ActionBarSherlock con Proguard
- 6. Minificar/Ofuscar código PHP
- 7. ¿Cómo ofuscar el código de Java rápidamente?
- 8. Codificar/ofuscar los parámetros HTTP
- 9. ¿Ofuscar el código en Eclipse?
- 10. Proguard no ofuscar aplicaciones Android
- 11. ¿Cómo ofuscar la aplicación web antes de publicarla?
- 12. ¿Cómo puedo ofuscar solo com.foo. * Y com.bar. * (ProGuard)?
- 13. ¿Cómo puedo ofuscar o hacer ilegibles mis archivos de JavaScript?
- 14. Android y Proguard: ¿cómo ofuscar, pero no optimizar ningún código?
- 15. Cómo ofuscar una aplicación web con Maven y ProGuard
- 16. ¿Cómo ofuscar solo unas pocas clases o un solo paquete?
- 17. ¿Debería preocuparme por ofuscar mi código .NET?
- 18. herramientas para ofuscar HTML y CSS
- 19. El mejor método para ofuscar o asegurar conjuntos .Net
- 20. ¿Cuál es la mejor manera de depurar los procedimientos almacenados (y escribir sprocs que son más fáciles de depurar)?
- 21. Uso de yGuard para ofuscar la biblioteca en Eclipse
- 22. de cifrado/ofuscar una cadena literal en tiempo de compilación
- 23. Android Library Project: ofuscar y mantener los recursos
- 24. Minify y ofuscar varios archivos a la vez javascript
- 25. ¿Es incorrecto volver a ofuscar el código ofuscado?
- 26. ¿Cómo puedo ofuscar mejor mi código de verificación de licencia de producto C#?
- 27. ¿Cómo puedo ofuscar fácilmente una aplicación de Android cuando uso IntelliJ IDEA?
- 28. ¿Cómo minimizar/ofuscar código JavaScript en un JSP que tiene variables JSP/JSTL mezcladas en él?
- 29. ¿Cómo debo realizar pruebas automáticas de SQL ETL Scripts & SPROC?
- 30. ¿Cómo evita LINQ-To-SQL Inyecciones SQL?
Jaja, solo porque no obtiene la autentis de todas estas declaraciones SQL precisas, no significa que estén ofuscadas. Tu genius-fu es simplemente demasiado débil. ;) – Bombe