Domanda

La mia web-app viene eseguito in IIS 6.0 in Windows Server 2003, e sappiamo tutti che in questa situazione, account utente "Servizio di rete" è utilizzato da IIS.

mi capita di avere per permettere certi all'utente di eseguire una certa azione sulla mia pagina web, e che l'azione richiede privilegi di amministratore.

La soluzione più pigri a me sembra aggiungere "Servizio di rete" per gli amministratori del Gruppo, e funziona davvero.

La mia domanda è, come PERICOLOSO questa soluzione è, e in che modo si può compromettere la sicurezza del mio server web?

È stato utile?

Soluzione

Questa è generalmente "una cattiva idea". Se questo è un server pubblico di fronte, allora questa è una pessima idea.

Che cosa si dovrebbe fare, e questo è il modo in cui affrontiamo i problemi di questo tipo, è sandbox le attività di amministrazione specifiche necessarie per svolgere in un altro processo, ad esempio un servizio di Windows, che ha elevato i diritti.

Abbiamo poi ospitare un server Remoting nel servizio di Windows e comunicare con il servizio sia sopra una named pipe o TCP / IP (se macchina a macchina e questo è più di un back-end rete privata).

Per ulteriori informazioni, si prega di consultare questa risposta che ho lasciato per un altro utente per quanto riguarda un problema simile:

  

account utente di Windows che esegue solo le disposizioni IIS7

Un approccio ancora migliore sarebbe quella di non avere mai la comunicazione diretta tra l'applicazione Web e il servizio Windows, ma passare attraverso un intermediario, come una coda di lavoro o un messaggio. La vostra richiesta di bassa luoghi di applicazione privilegiati per l'attività di amministrazione da svolgere, il servizio privilegiato elevata legge questi compiti dalla coda e li porta fuori.

In entrambi i casi è necessario assicurarsi che non si overscope la responsabilità di ogni attività. vale a dire garantire che, se il compito è quello di creare un nuovo account di Windows sul server quindi non permettere che il nuovo account per ottenere più diritti di cui ha bisogno.

Altri suggerimenti

Se dovessi scrivere qualche funzione web che ha richiesto a livello di dialogo di amministrazione, vorrei fare che è propria applicazione nel proprio pool di app, bloccare tale applicazione più strettamente ho potuto, dare quel pool di app un account denominato (un delle risorse del dominio, se da un Active Directory), e poi dare che i privilegi di amministratore degli account sulla scatola. Tenendolo nel proprio pool di app blocca in modo efficace verso il basso dalla vostra applicazione normale.

NT Authority / Servizio di rete interagisce con un sacco di roba sulla vostra macchina. Non posso venire con qualsiasi buon motivo per ottenere il servizio di rete di privilegi di amministratore.

In nessun caso questo.

Se si aggiunge Servizio di rete al gruppo admin, allora tutti gli utenti anonimi che accedono al Web App saranno amministratori per impostazione predefinita e il danno potenziale è enorme.

Per la tua domanda

  
    

mi capita di avere per permettere certi all'utente di eseguire una certa azione sulla mia pagina web, e che l'azione richiede privilegi di amministratore.

  

Questo va bene - Usa autenticazione di Windows su quella pagina web e rendere l'utente un normale amministratore di Windows. Ora, e tutti gli altri amministratori, in grado di eseguire i compiti che avete impostati.

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