Debito tecnico e rilievi di sicurezza
Registro dei rilievi verificati durante il recupero. Ogni voce ha evidenza e classificazione.
Sicurezza
SEC-001 — Credenziali Oracle in chiaro nel repository (VERIFIED)
- Cosa:
InfocadWeb/WebMachine/CASSANDRA/Web.configcommitta credenziali Oracle in chiaro (connection string attiva + molte varianti per-ambiente commentate:*_TEST38,*_TESTDEMO,*_GPE,*_TESTFS,*_TESTPMO,INFOCAD_BIM/REQUESTCENTER_BIM/DEM_BIM). Altriapp.configdi integrazione incorporano credenziali inline. - Impatto: le credenziali persistono nella storia Git anche se il deploy esclude i
.config. - Evidenza:
TASK-CFG-001§8 (valori mascherati). - Nota: rilievo di documentazione, non modificato (programma non distruttivo). Rimedio a cura del team (segregazione segreti, rotazione, purge storia).
Debito architetturale / manutenibilità
TD-001 — Stack di autenticazione duale (SUPPORTED)
ASPNET_TEST38 contiene sia il legacy Oracle ASP.NET membership/roles (ORA_ASPNET_*) sia
tabelle OpenIddict/EF Core. Quale sia autoritativo a runtime, e per quale tier, è UNKNOWN
(OQ-4).
TD-002 — Tre DAL RequestCenter coesistenti (SUPPORTED)
RequestCenter.DAL.Oracle (VB legacy, probabile morto), .OracleODP (v4.8 canonico),
.OracleODPXNET (net8, ricollega lo stesso sorgente). Rischio di divergenza/confusione.
TD-003 — Deploy senza orchestratore committato (VERIFIED)
Nessun CI; il deploy si basa su exclude-list + copy/robocopy e su drop deploy-time
(connections.xml, service.xml, restartserver.bat) non versionati. ConnectionsService
riscrive le connection string in-place. Fragilità operativa e scarsa riproducibilità (OQ-7).
TD-004 — Assenza di test automatici (VERIFIED)
0 progetti xUnit/NUnit/MSTest nei due repo. Solo harness manuali (InfocadTester,
IntegrationTester). Nessuna rete di sicurezza per refactoring/migrazione net8.
TD-005 — Superficie SOAP legacy (INFERRED)
SOAP prevalentemente ASMX (InfocadIntegrationWS, 19 asmx) — tecnologia deprecata.
Quantificazione (TASK-API-001, VERIFIED): 46 .asmx + 35 .svc, tutti in InfocadWeb.
TD-006 — Regole applicate solo lato UI e conflitti di regola (SUPPORTED)
Da TASK-BR-* (129 regole estratte): 27 regole enforced solo nella UI e non ripetute
nell'entry-point BL/WCF condiviso → bypassabili via WCF/integrazioni (rischio integrità dati);
es. anti-sovrapposizione prenotazioni BR-BOOK-003 bypassata dal canale WCF BR-BOOK-021.
Inoltre 7 conflitti di regola, tra cui: possibile bug del trigger CNT_EDIFICI (BR-PROP-029:
usa :NEW.ID_EDIFICIO — NULL in DELETE — per ripulire GLOBAL_TENANCY_BINDINGS) e doppio UNIQUE
su CODICE_EDIFICIO (BR-PROP-019). Dettaglio in Regole di business.
Rilievi di documentazione (non modificati); da confermare col team.
TD-007 — Rischi da regole/DB, round-2 (SUPPORTED)
Da TASK-BR-* round-2 (Maintenance/Stock/Accounting/BIM, +89 regole → 218 totali):
BR-ACC-006—ALTER SESSION SET NLS_NUMERIC_CHARACTERSnon ripristinato: landmine sul connection pool.BR-STK-025/BR-STK-009—STK_ADDITEMMOVEpuò portare la giacenza negativa (guardie solo-UI);DateMovevalidato nel DTO ma ignorato dalla proc (MOVE_DATE=SYSDATE).BR-ACC-019— discrepanza codice↔DB suWRKACC_CLOSESAL(parametroPSTATUSnel DAL, assente nella proc).BR-BIM-011— guardiaORA-20000su UPDATE = dead code (trigger solo su INSERT).- Anti-pattern sistemici:
WHEN OTHERSche inghiotte l'eccezione; full-replace dei figli su update. Dettaglio in Regole di business. Da confermare col team.
TD-008 — Grant UI bypassabili via .NET Remoting (SUPPORTED · sicurezza)
I controlli di permesso (grant di sezione) sono valutati solo lato UI; i servizi BL raggiunti via
.NET Remoting (Activator.GetObject, vedi [CLM-000026] / architettura) non ri-verificano il grant.
Un chiamante server-side o un'integrazione può quindi eseguire operazioni riservate. Casi: BR-CEN-001
(grant 20200, Census), BR-QC-012 (QualityCheck), BR-BLK-025 (BulkLoader), BR-CHK-002 (Check),
BR-RPT-003 (Report), BR-DOC-029 (Document), BR-EXP-002 (ExportService), BR-PRJ-024 (Project),
BR-GLB-017 (Global) — sistemico su 9 domini. Correlato al pattern TD-006 (regole solo-UI). Sintesi in
Reperti per il team. Rilievo di documentazione; da confermare/rimediare col team.