Domanda

Io familiarizzato con l'uso del modello di progettazione oggetto del contesto - un involucro di contesto leggero attorno agli oggetti passati tra livelli.

Se si dovesse utilizzare l'oggetto di contesto per tracciare il taint (ingresso utente non affidabile), oppure il livello di origine, ho potuto vedere come un livello ricevente potrebbe filtrare, codificare in modo dinamico in modo dinamico.

Ad esempio: Un utente invia dati di contesto "http / html" che alla fine verranno archiviati come file sul sistema. Il metodo Salva file potrebbe rilevare le entità HTML di contesto e decodifica, assegnare un identificatore casuale al caricamento del file e associare l'azione utente e il nome del file nel database.

La mia domanda è: come è quello più intelligente che applicare tutto il filtraggio, la codifica e la convalida per impostazione predefinita? Quali casi esistono dove conoscere il contesto di origine migliora la sicurezza oltre una buona validazione / codifica di ingresso?

Sto lavorando in Java / J2ee / Struts, ma questo è generalizzabile in altre lingue e framework.

Riferimenti:

http://www.corej2epatterns.com/patterns2nded/contextextObject.htm

http://www.cs.wustl. EDU / ~ SCHMIDT / PDF / contesto-Object-pattern.pdf

http://www.owasp.org/index.php/category:owasp_security_analysis_of_core_j2eejee_analysis_ap_core_jeeect_Design_ap

Con i miei ringraziamenti,

-ben

È stato utile?

Soluzione

Non so che il tracciamento in tanice tra i livelli di applicazione è la migliore applicazione del modello di oggetto context. Come lo capisco, un oggetto context è un oggetto che rimane all'interno di un singolo livello e fornisce servizi a più messaggi che passano attraverso quel livello.

Dove potevo vedere che l'uso di uso come meccanismo di sicurezza è nella creazione di uno strato di sicurezza esplicito all'interno dell'applicazione. Immagina che in quanto ogni utente autentica con il sistema, un oggetto contestuale di sicurezza viene creato all'interno del livello di sicurezza per quell'utente. L'oggetto contesto di sicurezza contiene un elenco di tutte le autorizzazioni dell'utente. Ogni richiesta che entra nel sistema da qualsiasi utente deve prima passare attraverso il livello di sicurezza e essere valutato rispetto all'oggetto contesto di sicurezza dell'utente.

Se la richiesta è consentita, il livello di sicurezza lo passa allo stack agli strati più alti per l'elaborazione. Se la richiesta viene negato, il livello di sicurezza restituisce un errore all'utente e il resto dell'applicazione non è il più saggio. Centralizzazione I problemi di sicurezza all'interno dello strato di sicurezza impediscono la dispersione dei controlli di sicurezza durante gli strati aziendali e di servizio.

In questo caso l'oggetto di contesto di sicurezza implementa il modello di oggetto contestuale. L'oggetto di contesto è a lungo vive, fornendo il contesto a più richieste dell'utente, ma non è visibile agli strati più elevati o inferiori nella pila di richiesta.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top