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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

132 Part III: Building Secure <strong>Web</strong> <strong>Application</strong>sFigure 6.1 shows a logical view of how user security is typically used in a <strong>Web</strong>application to restrict user access to <strong>Web</strong> pages, business logic, operations, <strong>and</strong> dataaccess.What can the user do?(Authorization)Who is the user?(Authentication)User Store(SAM, ActiveDirectory or SQLServer)Role-Based <strong>Security</strong>User<strong>Web</strong> PagesBusiness LogicOperationsData Access<strong>Web</strong> <strong>Application</strong>Figure 6.1A logical view of (user) role-based securityCode Access <strong>Security</strong>Code access security authorizes code when it attempts to access secured resources,such as the file system, registry, network, <strong>and</strong> so on, or when it attempts to performother privileged operations, such as calling unmanaged code or using reflection.Code access security is an important additional defense mechanism that you can useto provide constraints on a piece of code. An administrator can configure code accesssecurity policy to restrict the resource types that code can access <strong>and</strong> the otherprivileged operations it can perform. From a <strong>Web</strong> application st<strong>and</strong>point, this meansthat in the event of a compromised process where an attacker takes control of a <strong>Web</strong>application process or injects code to run inside the process, the additional constraintsthat code access security provides can limit the damage that can be done.Figure 6.2 shows a logical view of how code access security is used in a <strong>Web</strong>application to constrain the application’s access to system resources, resources ownedby other applications, <strong>and</strong> privileged operations, such as calling unmanaged code.

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

Saved successfully!

Ooh no, something went wrong!