Guidelines on Securing Public Web Servers
Most servers allow per directory CGI restrictions.
CGI itself provides little security enforcement.
Perl facilitates secure programming most other languages (e.g., C, C++, sh) do not.
CGI wrappers available from third parties offer additional protection for CGI.
Server Side Includes (SSI)
SSI is a limited server side scripting language supported by
most Web servers. SSI provides a set of dynamic features, such as including the current time
or the last modification date of the HTML file, as an alternative to using a CGI program to
perform the function. When the browser requests a document with a special file type, such as
.shtml , it triggers the server to treat the document as a template, reading and parsing the
entire document before sending the results back to the client (Web browser). SSI commands
are embedded within HTML comments (e.g., ). As the
server reads the template file, it searches for HTML comments containing embedded SSI
commands. When it finds one, the server replaces that part of the original HTML text with the
output of the command. For example, the SSI command given above (i.e., #include file)
replaces the entire SSI comment with the contents of another HTML file. This allows the
display of a corporate logo or other static information prepared in another file to occur in a
uniform way across all corporate Web pages. A subset of the directives available allows the
server to execute arbitrary system commands and CGI scripts, which may produce unwanted
side effects [NIST01a]. Some issues to consider when contemplating the deployment of SSIs:
The security of SSIs is extremely weak if the exec command is enabled on the Web
server.
The impact of SSIs can hurt the performance of heavily loaded Web servers.
The Security of SSIs relies heavily on host operating system and the Web server
application for security.
Microsoft Active Server Pages (ASP)
ASP is a server side scripting technology from
Microsoft similar to SSI, which can be used to create dynamic and interactive Web
applications. An ASP page is essentially an HTML template that contains server side scripts
that run when a browser requests an .asp resource from the Web server. The Web server
processes the requested page and executes any script commands encountered before sending
the composed result to the user's browser. Both JScript and VBScript are supported scripting
languages, but other scripting languages can also be accommodated, provided an ASP
compliant interpreter for that language is installed. For example, scripting engines are
available for PERL, REXX, and Python languages from various sources. Scripting capabilities
can be extended through the use of ActiveX objects, which can be developed in a variety of
languages, including Visual Basic, C++, COBOL, and Java. A script that invokes an ActiveX
object causes the object to be created and supplied any needed input parameters. Note that
ActiveX (see Section 6.3.1) is an optional technology and not required by ASPs [NIST01a].
Some issues to consider when contemplating the deployment of ASP [Zir02]:
ASP relies heavily on host operating system and the Web server application for
security.
45
Unlimited Web Hosting
|
|
TotalRoute.net Business web hosting division of Vision Web Hosting Inc. All rights reserved. |