11.07.2015 Views

Improving Web Application Security: Threats and - CGISecurity

Improving Web Application Security: Threats and - CGISecurity

Improving Web Application Security: Threats and - CGISecurity

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Chapter 11: Building Secure Serviced Components 303Audit RequirementsTo address the repudiation threat, sensitive transactions performed by EnterpriseService components should be logged. At design time, consider the type of operationsthat should be audited <strong>and</strong> the details that should be logged. At a minimum, thisshould include the identity that initiated the transaction <strong>and</strong> the identity used toperform the transaction, which may or may not be the same.<strong>Application</strong> Activation TypeAt design time, decide how your serviced component will be activated. You canactivate them using an instance of the Dllhost.exe process or you can run them insidethe client process. Server applications run out of process in an instance of Dllhost.exe.Library applications run in the client’s process address space. Library applications aremore efficient due to the lack of inter-process communication. However, they are lessconfigurable <strong>and</strong> are not protected with process level isolation. Many securitysettings, such as the authentication <strong>and</strong> impersonation levels, are inherited fromthe client process.TransactionsIf you plan to use distributed transactions, consider where the transaction is initiated<strong>and</strong> consider the implications of running transactions between components <strong>and</strong>resource managers separated by firewalls. In this scenario, the firewall must beconfigured to support the Microsoft Distributed Transaction Coordinator (DTC)traffic.If your physical deployment architecture includes a middle-tier application server, itis generally preferable to initiate transactions from the Enterprise Services applicationon the application server <strong>and</strong> not from the front-end <strong>Web</strong> application.Code Access <strong>Security</strong>Typically, applications that use serviced components are fully trusted, <strong>and</strong> as a resultcode access security has limited use to authorize calling code. However, EnterpriseServices dem<strong>and</strong>s that the calling code has the necessary permission to callunmanaged code. The main implication of this is that you will not be able to directlycall into an Enterprise Services application from a partial trust <strong>Web</strong> application. TheASP.NET partial trust levels (High, Medium, Low, <strong>and</strong> Minimal) do not grant theunmanaged code permission. If you need to call a serviced component from a partialtrust application, the privileged code that calls your component must be s<strong>and</strong>boxed.For more information, see “Code Access <strong>Security</strong> Considerations” later in thischapter.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!