Ho il seguente problema / sfida:
L'applicazione Web (ASP.NET 3.5) installata sulla LAN aziendale e funzionante su DB SQL Server deve fornire la possibilità di generare report personalizzati. Questi report possono essere fondamentalmente qualsiasi cosa, dal DB di sottolineatura, includono articolazioni complicate, unioni e qualsiasi cosa tu possa pensare. (Basta selezionare, no Inserisci / elimina / rilascia / aggiorna)
Il modo più semplice per farlo - consentire al sistema di eseguire query SQL. L'amministratore di sistema aggiungerà query personalizzate al sistema e gli utenti "normali" saranno in grado di eseguirle. Se hanno bisogno di una nuova query, chiederanno all'amministratore di creare una query per loro e poi saranno in grado di eseguirla tramite l'ID query.
L'approccio alla White List non funzionerà qui (almeno non riesco a vedere come).
E riguardo la lista nera? Stavo pensando a qualcosa del genere:
blackList={"--", ";", "/*", "*/", "@@", "@",
"char", "nchar", "varchar", "nvarchar",
"alter", "begin", "cast", "create", "cursor",
"declare", "delete", "drop", "end", "exec",
"execute", "fetch", "insert", "kill", "open",
"sys", "sysobjects", "syscolumns",
"table", "update"};
Ancora una volta - l'unica persona che può creare tale Query personalizzata è admin (e molto probabilmente ha il pieno controllo su DB in ogni caso).
Qualsiasi aiuto sarebbe benvenuto.
Grazie
A