The IBM® HTTP
server includes HTTP directives that can provide detailed control of the information
assets that the server uses. You can use directives to control from which
directories the Web server serves URLs for both HTML files and CGI programs,
to swap to other user profiles, and to require authentication for some resources.
Following are some suggestions for using HTTP directives:
- The HTTP server starts from the basis of ″explicit authority.″ The server
does not accept a request unless that request is explicitly defined in the
directives. In other words, the server immediately rejects any request for
a URL unless that URL is defined in the directives (either by name or generically).
- You can use protection directives to require a user ID and password before
accepting a request for some or all of your resources.
- When the server accepts a request, normal system resource security takes
over. The user profile that requests the resource must have authority to the
resource (such as the folder or source physical file that contains the HTML
document). By default, jobs run under the QTMHHTTP user profile. You can use
a directive to swap to a different user profile. The system then uses that
user profile’s authority to access objects. Following are some considerations
for this support:
- Swapping user profiles can be particularly useful when your server provides
more than one logical Web site. You can associate a different user profile
with the directives for each Web site, and thus use normal system resource
security to protect the documents for each site.
- You can use the ability to swap user profiles in combination with the
validation object. The server uses a unique user ID and password (separate
from your normal user ID and password) to evaluate the initial request. After
the server has authenticated the user, the system then swaps to a different
user profile and thus takes advantage of resource security. The user is, thus,
not aware of the true user profile name and cannot attempt to use it in other
ways (such as FTP).
- Some HTTP server requests need to run a program on the HTTP server. For
example, a program might access data on your system. Before the program can
run, the server administrator must map the request (URL) to a specific user-defined
program that conforms to CGI user-interface standards. Following are some
considerations for CGI programs:
- You can use the protection directives for CGI programs just as you do
for HTML documents. Thus, you can require a user ID and password before running
the program.
- By default, CGI programs run under the QTMHHTP1 user profile. You can
swap to a different user profile before running the program. Therefore, you
can set up normal system resource security for the resources that your CGI
programs access.
- As security administrator, you should perform a security review before
authorizing the use of any CGI program on your system. You should know where
the program came from and what functions the CGI program performs. You should
also monitor the capabilities of the user profiles under which you run CGI
programs. You should also perform testing with CGI programs to determine,
for example, whether you can gain access to a command line. Treat CGI programs
with the same vigilance that you treat programs that adopt authority.
- In addition, be sure to evaluate what sensitive objects might have inappropriate
public authority. A poorly designed CGI program might, in rare cases, allow
a knowledgeable, devious user to attempt to roam your system.
- Use a specific user library, such as CGILIB, to hold all your CGI programs.
Use object authority to control both who can place new objects in this library
and who can run programs in this library. Use the directives to limit the
HTTP server to running CGI programs that are in this library.
Tip: If your server provides multiple logical Web sites, you might
want to set up a separate library for the CGI programs for each site.
Other security considerations
Following
are additional security considerations:
- HTTP provides read-only access to your system. HTTP server requests cannot
update or delete data on your system directly. However, you might have CGI
programs that update data. Additionally, you can enable the Net.Data® CGI
program to access your system database. The system uses a script (which is
similar to an exit program) to evaluate requests to the Net.Data program.
Therefore, the system administrator can control what actions the Net.Data program
can take.
- The HTTP server provides an access log that you can use to monitor both
accesses and attempted accesses through the server.