服务器访问控制
access.conf文件包含一些指令控制允许什么用户访问apache目录。应该把deny from all作为初始化指令,然后使用allow from指令打开访问权限。你可以允许来自某个域、ip地址或者ip段的访问。例如:
<directory /usr/local/http/docs/private>
<limit>
order deny,allow
deny from all
allow from sans.org
</limit>
</directory>
密码保护
使用.htaccess文件,可以把某个目录的访问权限赋予某个用户。系统管理员需要在httpd.conf或者srm.conf文件中使用accessfilename指令打开目录的访问控制。以下是一个.htaccess示例文件:
authname privatefiles
authtype basic
authuserfile /path/to/httpd/users
require foo <---一个有效的用户名
然后,使用如下命令填加一个用户:
# htpasswd -c /path/to/httpd/users foo
apache日志文件
系统管理员可以使用日志格式指令来控制日志文件的信息。使用logformat "%a %l"指令,可以把发出http请求浏览器的ip地址和主机名记录到日志文件。出于安全的考虑,你至少应该那些验证失败的web用户,在http.conf文件中加入logformat "%401u"指令可以实现这个目的。这个指令还有其它的许多参数,用户可以参考apache的文档。另外,apache的错误日志文件对于系统管理员来说也是非常重要的,错误日志文件中包括服务器的启动、停止以及cgi执行失败等信息。
安全相关的指令
在apache配置文件中,有一些安全相关的指令可以使用。
使用以下指令可以帮助你减小拒绝服务的威胁:
limitrequestbody: 数字参数,控制http请求的大小。
limitrequestfields: 数字参数,控制请求头的数目。
keepalive: 设置连接的生存期。
keepalivetimeout: 限制等待请求的时间。
使用以下指令可以帮助你叫嚣缓冲区溢出的危险:
limitrequestfieldsize: 限制每个请求头的大小。
limitrequestline: 限制每个请求行的大小。
cgi(ommon gateway interface,通用网关接口)的安全威胁
cgi的安全性非常重要,攻击者可以利用cgi的缺陷获得系统信息、执行系统命令、占用系统资源。如果一个cgi程序使用静态分配的内存,就可能为缓冲区溢出攻击提供机会。为了减少这种风险,程序员应该在cgi代码中使用动态分配内存。除了cgi编写人员应该注意外,系统管理员可以采取对cgi进行封装(例如:suexec或者cgi wrap)的办法加强cgi的安全性。通过这种方式可以使cgi程序以某个独立的用户权限运行,即使发生缓冲区溢出,也只影响那个用户的目录/文件。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器