27.01.2014 Views

NIST 800-44 Version 2 Guidelines on Securing Public Web Servers

NIST 800-44 Version 2 Guidelines on Securing Public Web Servers

NIST 800-44 Version 2 Guidelines on Securing Public Web Servers

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.

GUIDELINES ON SECURING PUBLIC WEB SERVERS<br />

sources. The following are some important points to c<strong>on</strong>sider when c<strong>on</strong>templating the deployment of<br />

ASP.NET [Ziri02]:<br />

ASP.NET relies heavily <strong>on</strong> the host OS and <strong>Web</strong> server applicati<strong>on</strong> for security.<br />

Client security is well integrated with <strong>Web</strong> server and host OS authenticati<strong>on</strong> services.<br />

ASP.NET supports Microsoft Code Access Security, which provides methods for the c<strong>on</strong>tent<br />

developer or administrator to c<strong>on</strong>strain privileges.<br />

ASP.NET is relatively immune to buffer overflows.<br />

ASP.NET is a well-documented and mature technology.<br />

Java EE is based <strong>on</strong> Java technology (see Secti<strong>on</strong> 6.4.1) and provides a type of server-side applet called a<br />

servlet. The <strong>Web</strong> server first determines whether the browser’s request requires dynamically generated<br />

informati<strong>on</strong> from a servlet, which processes the request and generates an HTTP resp<strong>on</strong>se, a Java Server<br />

Page (JSP), or a static HTML page. If a servlet is required, the <strong>Web</strong> server can then locate or instantiate a<br />

servlet object corresp<strong>on</strong>ding to the request and invoke it to obtain the needed results. If a JSP is<br />

requested, Java EE compiles the JSP into a servlet, then instantiates and invokes it to obtain a resp<strong>on</strong>se.<br />

If a static HTML page is requested, Java EE simply returns the HTML c<strong>on</strong>tent like a traditi<strong>on</strong>al <strong>Web</strong><br />

server.<br />

The Java EE server typically populates itself with the servlet objects, which remain inactive until invoked.<br />

Thus, little or no startup overhead is associated with executi<strong>on</strong> of the servlet objects. A <strong>Web</strong> server may<br />

also offload the handling of servlets to another server. By relying <strong>on</strong> Java portability and observing a<br />

comm<strong>on</strong> API, servlet objects can run in nearly any server envir<strong>on</strong>ment. Servlets allow developers to take<br />

advantage of an object-oriented envir<strong>on</strong>ment <strong>on</strong> the <strong>Web</strong> server, which is flexible and extendible.<br />

Moreover, untrusted servlet objects can be executed in a secure area, with the dynamically generated<br />

informati<strong>on</strong> being passed from the secure area into the remaining server envir<strong>on</strong>ment [<str<strong>on</strong>g>NIST</str<strong>on</strong>g>01].<br />

Some important points to c<strong>on</strong>sider when c<strong>on</strong>templating the deployment of Java servlets [Ziri02]:<br />

Java EE is tightly integrated with host OS security and <strong>Web</strong> server authenticati<strong>on</strong> for str<strong>on</strong>g security.<br />

Java EE facilitates secure programming by—<br />

• Leveraging security of Java language<br />

• Using a str<strong>on</strong>g security model supporting c<strong>on</strong>straints by developers and server administrators<br />

• Employing secure error handling.<br />

Java EE is a well-documented and mature technology.<br />

A large amount of robust third-party code from IBM, Sun, Apache Foundati<strong>on</strong>, and other developers<br />

is available for use with Java EE.<br />

PHP is a scripting language used to create dynamic <strong>Web</strong> pages. With syntax from C, Java, and Perl, PHP<br />

code is embedded within HTML pages for server-side executi<strong>on</strong>. PHP is comm<strong>on</strong>ly used to extract data<br />

from a database and present it <strong>on</strong> a <strong>Web</strong> page. Most major Windows and Unix <strong>Web</strong> servers support the<br />

6-14

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

Saved successfully!

Ooh no, something went wrong!