安全攻击与防范手册范本_第1页
安全攻击与防范手册范本_第2页
安全攻击与防范手册范本_第3页
安全攻击与防范手册范本_第4页
安全攻击与防范手册范本_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 . . 38/38安全攻击与防范手册_版本 1.02010年8月概述简介当今世界,Internet(因特网)已经成为一个非常重要的基础平台,很多企业都将应用架设在该平台上,为客户提供更为方便、快捷的服务支持。这些应用在功能和性能上,都在不断的完善和提高,然而在非常重要的安全性上,却没有得到足够的重视。随着WEB技术应用的围越来越广泛,WEB技术相关的安全漏洞越来越多的被挖掘出来,而针对WEB站点的攻击已经成为了最流行的攻击途径。不久前项目管理部对公司外重点系统进行了一次安全隐患分析测试,并总结出了公司安全测试问题分类与描述的报告文档。本文针对此报告中提到的一些重大安全隐患问题逐一分析,并给出

2、相应的解决方案。参考资料Java安全性编程实例系统安全开发手册企业级Java安全性(构建安全的J2EE应用)WEB安全隐患与预防措施会话标识未更新描述登陆过程前后会话标识的比较,显示它们并未更新,这表示有可能伪装用户。初步得知会话标识值后,远程攻击者有可能得以充当已登录的合法用户。安全级别高。安全风险可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以与执行事务。解决方案不要接受外部创建的会话标识。始终生成新的会话,供用户成功认证时登录。防止用户操纵会话标识。请勿接受用户浏览器登录时所提供的会话标识。如果有验证码的。验证码改用app

3、lication存储。同时记得释放资源技术实现登陆界面和登陆成功的界面一致时修改后台逻辑,在验证登陆逻辑的时候,先强制让当前session过期,然后用新的session存储信息。登陆界面和登陆成功的界面不一致时在登陆界面后增加下面一段代码,强制让系统session过期。request.getSession().invalidate();/清空sessionCookie cookie = request.getCookies()0;/获取cookiecookie.setMaxAge(0);/让cookie过期 注意:框架2.0已经修改了登陆验证类,登陆成功后会清理掉当前session,重新创建一

4、个新的session。凡是使用框架2.0的项目均可统一增加此功能。不充分封锁描述程序没有使用锁定功能,可以穷举密码,可以造成蛮力攻击,恶意用户发送大量可能的密码和/或用户名以访问应用程序的尝试。 由于该技术包含大量登录尝试,未限制允许的错误登录请求次数的应用程序很容易遭到这类攻击。安全级别高。安全风险可能会升级用户特权并通过 Web 应用程序获取管理许可权。解决方案请确定允许的登录尝试次数(通常是 3-5 次),确保超出允许的尝试次数之后,便锁定。 为了避免真正的用户因被锁定而致电支持人员的麻烦,可以仅临时性暂挂活动,并在特定时间段之后启用。锁定大约 10 分钟,通常用这样的方法阻止蛮力攻击。

5、技术实现提供锁定信息配置类,可根据项目特定需求修改此配置信息。修改登陆验证逻辑,根据上面的配置信息提供锁定功能。注意:框架2.0已经实现了此功能,凡是使用框架2.0的项目均可统一增加此功能。可预测的登录凭证描述发现应用程序会使用可预期的认证凭证(例如:admin+admin、guest+guest)。 攻击者很容易预测用户名和密码,登录应用程序,从而获取未获授权的特权。安全级别高。安全风险可能会升级用户特权并通过 Web 应用程序获取管理许可权。解决方案不应使用易于预测的凭证(例如:admin+admin、guest+guest、test+test 等),因为它们可能很容易预测,可让用户不当进

6、入应用程序。技术实现只要养成良好的习惯,坚决不使用容易预测的名和密码,即可彻底杜绝此类问题。登录错误消息凭证枚举描述当试图利用不正确的凭证来登录时,当用户输入无效的用户名和无效的密码时,应用程序会分别生成不同的错误消息。 通过利用该行为,攻击者可以通过反复试验(蛮力攻击技术)来发现应用程序的有效用户名,再继续尝试发现相关联的密码。安全级别高。安全风险可能会升级用户特权并通过 Web 应用程序获取管理许可权。解决方案不论名和密码哪个错误,都提示同样的消息。且同时加上登陆失败次数达到规定的锁定功能。技术实现不论名和密码哪个错误,都提示如下所示同样的消息:一旦某个连续登陆失败次数达到了规定的数值,就

7、会按配置的时间被锁定,如下提示:如此一来,攻击者就没机会穷举和密码了,此类攻击也就不可能发生了!注意:框架2.0已经实现了此功能,凡是使用框架2.0的项目均可统一增加此功能。已解密的登录请求描述通过 POST 发送表单数据,这些数据将在 报文中以明文的形式传输。对于一些敏感的数据(如用户名/密码、信用卡密码)以传统的 报文传输存在巨大的风险。安全级别中。安全风险可能会窃取诸如用户名和密码等未经加密即发送了的用户登录信息。解决方案饶过AppScan软件扫描对提交的敏感信息,一律以加密方式传给服务器。采用基于SSL的 S传输协议,对提交的敏感信息在传输过程中加密。敏感信息包括:用户名、密码、社会保

8、险、信用卡、驾照、电子地址、邮政编码等。注意:如果不是基于SSL的 S传输协议的话。对于提交的敏感信息即使加密后,AppScan软件同样认为该漏洞存在。所以避免这一漏洞的有效方案是饶过扫描或者采用基于SSL的 S传输协议。虽然采取 S传输数据有很高的安全性,但是也有以下几个显著的缺点:需要申请一个合法组织颁发的用来加/解密的证书。部署、配置繁琐。同样的硬件环境,效率比 慢很多。通过上述分析,采取基于SSL的 S传输协议,付出的代价有点大,是否有必要这样做,值得深入讨论。:把text=password这个用其他的代替,就可以解决已解密的登录请求密码:js代码function hiddenPass

9、(e) e = e ? e : window.event; var kcode = e.which ? e.which : e.keyCode; var pass = document.getElementById(password1); var j_pass = document.getElementById(password); if(kcode!=8) var keychar=String.fromCharCode(kcode); j_pass.value=j_pass.value+keychar; j_pass.value=j_pass.value.substring(0,pass.l

10、ength); 技术实现饶过AppScan软件扫描绕过软件扫描有两种方式,如下:修改密码输入框名字和类型经过不断扫描测试分析,如果密码输入框的名字不包含password、pwd等关键字的话,大部分页面就不会扫描出漏洞。如果还能扫描出漏洞的话,那就在修改密码输入框名字的基础上,把输入框的type的属性值为password的值改为text,然后用Javascript函数来模拟实现星号代替输入值的密码输入效果即可饶过该扫描。示例步骤如下:在原来的密码输入框前添加一个新的输入控件:如:注:其中document.getElementById(cipher).focus()中 cipher为原来密码输入框

11、的ID值,这个是为了Tab键能起作用而设置的。修改原来密码框的type属性为text,并添加onkeyup函数如下:其中的code为新添加的输入控件ID。在页面的head标签中间添加如下样式:其中code代表新添加的输入控件ID,cipher代表原来密码输入框的ID。样式表的ID必须和控件的ID一致。采用AJAX登录把登陆界面的Form标签去掉,采用AJAX登录。示例代码如下:登陆页面用户:密码: 记住密码 var request = false;try request = new XML Request(); catch (trymicrosoft) try request = new Ac

12、tiveXObject(Msxml2.XML ); catch (othermicrosoft) try request = new ActiveXObject(Microsoft.XML ); catch (failed) request = false; function getCustomerInfo() varurl = j_acegi_security_check?j_username=+document.getElementById(j_username).value+&j_cipher=+document.getElementById(j_password).value;aler

13、t(url+url);request.open(GET, url, true);/调用回调函数request.onreadystatechange = updatePage;request.send(null);function updatePage() if (request.readyState = 4) if (request.status = 200) var response = request.responseText; document.write(response); else if (request.status = 404) alert(Requested URL is n

14、ot found.); else if (request.status = 403) alert(Access denied.); else alert(status is + request.status); 采用基于SSL的 S传输协议以Weblogic默认配置为例,步骤如下:启动Weblogic,进入Console。展开Servers,单击服务器名,在右边的配置栏中,选择常规。在出现的容中选中已启用SSL监视端口,并配置监视端口,如下图:重新启动Weblogic,测试 S协议,测试地址格式示例: s:/IP:端口/ApplicationNameSQL 注入描述随着B/S模式应用开发的发展

15、,使得使用这种模式编写应用程序的程序员也越来越多。但是由于这个行业的入门门槛不高,程序员的水平与经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。攻击者可以通过互联网的输入区域,利用某些特殊构造的SQL语句插入SQL的特殊字符和指令,提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),操纵执行后端的DBMS查询并获得本不为用户所知数据的技术,也就是SQL Injection(SQL注入)。安全级别高。安全风险可能会查看、修改或删除数据库条目和表。解决方案过滤掉用户输入中的危险字符。检查用户输入的字段类型,确

16、保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。屏蔽一些详细的错误消息,因为黑客们可以利用这些消息。使用专业的漏洞扫描工具。企业要在Web应用程序开发过程的所有阶段实施代码的安全检查。首先,要在部署Web应用之前实施安全测试,这种措施的意义比以前更大、更深远。企业还应当在部署之后用漏洞扫描工具和站点监视工具对进行测试。技术实现(1)采用过滤器技术。过滤技术是通过特定过滤函数,去查找每个请求的每个参数对应的值,如果出现了不允许的字符,就会弹出如下提示:点确定后即可回到请求页面,删除敏感字符即可请求成功!过滤器ParameterFilter.Java代码如下:/*

17、参数过滤类,过滤普通表单*/public class ParameterFilter implements Filter private Pattern scriptPattern;private Pattern sqlPattern;private Pattern letterPattern;private String notProtect = ;private String totalLetter = ;public void destroy() public void doFilter(ServletRequest request, ServletResponse response,F

18、ilterChain filtreChain) throws IOException, ServletException ServletRequest req = ( ServletRequest) request;String contentType = request.getContentType() = null ? : request.getContentType();if (!contentType.startsWith(multipart/form-data)& !FilterUtils.isContainUrl(notProtect, FilterUtils.getFullUrl

19、FromRequest(req) Enumeration params = req.getParameterNames();boolean isSecurity = true;while (null != params & params.hasMoreElements() String para_name = (String) params.nextElement();String para_value = null;para_value = (String) req.getParameterValues(para_name);for (int i = 0; i para_value.leng

20、th; i+) String _para_value = para_valuei.toLowerCase();if (scriptPattern.matcher(_para_value).matches()| sqlPattern.matcher(_para_value).matches() isSecurity = false;break;if (!isSecurity)break;if (!isSecurity) response.setContentType(text/html; charset=GBK);response.getWriter().write(alert(输入有误,请不要

21、包含+totalLetter+中的任何敏感字符!);history.go(-1););return;filtreChain.doFilter(request, response);public void init(FilterConfig filterConfig) throws ServletException letterPattern = Pattern pile(a-z*);String scriptPara = filterConfig.getInitParameter(scriptRegx).toLowerCase();String sqlPara = filterConfig.g

22、etInitParameter(sqlRegx).toLowerCase();notProtect = filterConfig.getInitParameter(notProtect);scriptPattern = Pattern pile(resultStr(scriptPara);sqlPattern = Pattern pile(resultStr(sqlPara);totalLetter = scriptPara+|+sqlPara;int index = totalLetter.indexOf();if(index 0)totalLetter = totalLetter.subs

23、tring(0, index)+totalLetter.substring(index+1);public String resultStr(String oldStr) String newStr = ;if (oldStr != null & !oldStr.equals() String temp = oldStr.split(|);if (temp.length 0) for (int i = 0; i temp.length; i+) String tempStr = ;boolean isLetter = false;for (int j = 0; j tempi.length()

24、; j+) String str = tempi.substring(j, j + 1);if (letterPattern.matcher(str).matches() tempStr = tempStr+ (%+ parseAscii(str.toUpperCase() + )| + (%+ parseAscii(str)+ )|( + str + );isLetter = true; else if(str.equals( )| str.equals()str = +str;tempStr = tempStr + (%+ parseAscii(str) + )|( + str+ );is

25、Letter = false;if(isLetter)if (newStr.equals() newStr = newStr + .*(s+)( + tempStr + )(s+).*; else newStr = newStr + |.*(s+)( + tempStr + )(s+).*;elseif (newStr.equals() newStr = newStr + .*( + tempStr + ).*; else newStr = newStr + |.*( + tempStr + ).*;return newStr;private String toHexUtil(int n)St

26、ring rt=;switch(n)case 10:rt+=A;break;case 11:rt+=B;break;case 12:rt+=C;break;case 13:rt+=D;break;case 14:rt+=E;break;case 15:rt+=F;break;default:rt+=n;return rt;public String toHex(int n)StringBuffer sb=new StringBuffer();if(n/16=0)return toHexUtil(n);elseString t=toHex(n/16);int nn=n%16;sb.append(

27、t).append(toHexUtil(nn);return sb.toString();public String parseAscii(String str)StringBuffer sb=new StringBuffer();byte bs=str.getBytes();for(int i=0;ibs.length;i+)sb.append(toHex(bsi);return sb.toString();辅助类如下:public class FilterUtils public static String getFullUrlFromRequest( ServletRequest htt

28、Request) String url = httRequest.getRequestURI();String queryString = httRequest.getQueryString();if (null != queryString & !queryString.trim().equals() url = url + ? + queryString;return url;public static boolean isContainUrl(String urlList, String url) boolean isExclude = false;if (null != urlList

29、 & !urlList.trim().equals() String resources = urlList.split(,);if (null != resources) for (int i = 0; i = 0) isExclude = true;break;return isExclude;web.xml配置片段如下:SecurityFiltercn.victorysoft.devcenter ponent.usrmgr.security.filter.ParameterFilterscriptRegx!CDATA|=|andsqlRegxnotProtectlogin.html,.u

30、ploadSecurityFilter*.jsp(2)每个请求都采取特定的数据验证函数,验证数据的类型和长度,只允许特定的特殊字符输入。注意:有些聪明的攻击者在攻击的时候会把一些敏感字符转化成URL编码(即字符的ASCII的16进制)来饶过检查。所以,我们在过滤字符的时候也要对敏感字符的URL编码进行过滤,如( 对应的URL编码是 %3C)已经完成的且正在运行的系统,建议采用过滤器技术,因为过滤器技术侵入性小、代码量小、部署方便对于未完成的且正在开发的系统,建议采用第二个方案。因为过滤器技术虽然能确保数据的正确性,但同时也存在着过滤不严或过滤太严的问题。不能满足某些特殊的业务需求。跨站点脚本攻

31、击描述XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意用户的特殊目的。安全级别高。安全风险可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以与执行事务。解决方案在你的WEB浏览器上禁用javascript脚本 开发者要仔细审核代码,对提交输入数据进行有效检查 技术实现参见 2.6.5 技术实现中的过滤器技术。跨站点请求伪造描述CSRF(Cross-site request for

32、gery),中文名称:跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。你这可以这么理解CSRF攻击:攻击者盗用了你的身份,以你的名义发送恶意请求。CSRF能够做的事情包括:以你名义发送,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账造成的问题包括:个人隐私泄露以与财产安全。安全级别中。安全风险可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以与执行事务。解决方案只允许GET请求检索数据,但是不允许它修改服务器上的任何数据。这个修改可以防止利用img标签或者其它

33、的类型的GET请求的CSRF攻击。要求所有POST请求都包含一个随机值。脚本利用:alert(document.cookie)技术实现对于有跨站点请求伪造漏洞的页面,添加一个能在session中获取token的隐藏字段。对于Post请求的页面,都需要添加一个固定名字的隐藏域,值为去服务器获取的随机值。格式如下:input name=CSRF_TOKEN type=hidden id=CSRF_TOKEN value=/对于Get请求的页面,Url后需要添加一个固定名字的参数,值为去服务器获取的随机值。格式如下:window.location=loginProcess.jsp?CSRF_TOKE

34、N=添加CSRF过滤器,该过滤器拦截符合过滤规则的请求,取得表单的token值,和服务上存储的值比较,如果一样,就放行,如果不一样,就自动跳转错误提示页面。过滤器代码public class CsrfFilter implements Filter private String notProtect; / 不受保护的资源集合private String tokenTimeout; / token 过期时间public void init(FilterConfig filterConfig) throws ServletException notProtect = filterConfig.ge

35、tInitParameter(notProtect);tokenTimeout = filterConfig.getInitParameter(TokenTimeOut);if (null = tokenTimeout) tokenTimeout = 10;public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException ServletRequest req = ( ServletRequest)

36、request; Session session = req.getSession(true);if (!FilterUtils.isContainUrl(notProtect, FilterUtils.getFullUrlFromRequest(req) String previousNonce = req.getParameter(TokenBuilder.CSRF_NONCE_REQUEST_PARAM);Object obj = session.getAttribute(TokenBuilder.CSRF_NONCE_REQUEST_PARAM) ;String expectedNon

37、ce = obj = null ?:(String)obj;if (expectedNonce.equals() expectedNonce = TokenBuilder.generateToken();session.setAttribute(TokenBuilder.CSRF_NONCE_REQUEST_PARAM, expectedNonce);if (null != previousNonce) if(TokenBuilder.checkTokenTimeout(previousNonce, tokenTimeout) )expectedNonce = TokenBuilder.gen

38、erateToken();session.setAttribute(TokenBuilder.CSRF_NONCE_REQUEST_PARAM, expectedNonce);if(!TokenBuilder.isTokenValid(expectedNonce,previousNonce)response.setContentType(text/html; charset=GBK);response.getWriter().write(alert(无效的安全标识符,请重新刷新当前页面!);history.go(-1););return;filterChain.doFilter(request

39、, response);public void destroy() FilterUtil类代码,参见2.6 sql注入技术实现中的辅助类代码。TokenBuilder类代码public class TokenBuilder private static Map map = new HashMap();public static final String CSRF_NONCE_REQUEST_PARAM = CSRF_TOKEN;public synchronized static String generateToken()byte random = new byte16; StringBuf

40、fer buffer = new StringBuffer(); SecureRandom randomSource = new SecureRandom(); randomSource.nextBytes(random); for (int j = 0; j 4); byte b2 = (byte) (randomj & 0 x0f); if (b1 10) buffer.append(char) (0 + b1); else buffer.append(char) (A + (b1 - 10); if (b2 = term)isTimeout = true;catch(Exception

41、e)isTimeout = true;while (it.hasNext() String key = (String) it.next();long tokenTime = Long.valueOf(key.split(:)0).longValue();long interval = nowTime - tokenTime;if (interval = term) it.remove();return isTimeout;public synchronized static boolean isTokenValid(String savedToken,String token) boolea

42、n isTokenValid = map.containsKey(token);if(savedToken.equals(token)if (isTokenValid) map.remove(token);isTokenValid = true;elseif (isTokenValid) map.remove(token);return isTokenValid;wem.xml配置CsrfFiltercn.victorysoft.devcenter ponent.usrmgr.security.filter.CsrfFilterTokenTimeOut15CsrfFilter*.jsp注意:这

43、是目前唯一能解决此漏洞的可行方案,但是有一定的工作量,且对系统效率也有轻微影响,是否有必要修改,值得商榷。发现数据库错误模式描述“SQL 注入”以外的攻击所触发的“数据库错误”, 插入的危险字符渗透了应用程序并到达 SQL 查询本身(即应用程序易受到 SQL 注入攻击)。安全级别高。安全风险可能会查看、修改或删除数据库条目和表。解决方案A确保用户输入的值和类型(如 Integer、Date 等)有效,且符合应用程序预期。 B. 利用存储过程,将数据访问抽象化,让用户不直接访问表或视图。当使用存储过程时,请利用 ADO 命令对象来实施它们,以强化变量类型。 C. 清理输入以排除上下文更改符号,例

44、如: 1 (单引号)2 (引号)3 (反斜线转义单引号)4 (反斜杠转义引号)5 )(结束括号)6 ;(分号)技术实现参见 2.6.5技术实现。应用程序错误描述如果攻击者通过探测Web 页来找寻引起异常的各种情况,则出现信息泄漏攻击。对于攻击者而言,这是一种颇有成效的攻击方法。因为异常细节信息常以 HTML 的形式返回并显示在浏览器中。这可能会泄漏很有用的信息,如堆栈跟踪。堆栈跟踪包含数据库连接字符串、数据库名、数据库方案信息、SQL 语句以与操作系统和平台版本。安全级别中。安全风险攻击者可从错误信息判断出SQL注入或其他攻击方式的漏洞。解决方案(1)检查所有的请求,以了解所有预期的参数和值是

45、否存在。当参数缺失时,发出适当的错误消息,或使用缺省值。 (2)应用程序应验证其输入是否由有效字符组成(解码后)。 例如,应拒绝包含空字节(编码为 %00)、单引号、引号等的输入值。 (3) 确保值符合预期围和类型。 如果应用程序预期特定参数具有特定集合中的值,那么该应用程序应确保其接收的值确实属于该集合。例如,如果应用程序预期值在 10.99 围,那么就该确保该值确实是数字,且在 10.99 围。(4)请勿在生产环境中输出调试错误消息和异常。技术实现养成良好的编码习惯,屏蔽错误信息,防止信息泄露,将默认的错误信息替换成一个事先定制好的Html页面,这个页面只显示一条简单的错误消息但不提供任何

46、细节。例如:可以将浏览器的404、500等错误以一个友好的界面展现出来。修改工程的web.xml,添加 这样的话,一旦出现404错误,页面就会跳转到address.jsp页面,如下:如果出现500错误,则页面就会跳转到error.jsp页面,如下:启用了不安全的 方法描述Allow 头显示危险的 选项是已允许的,如:- DELETE - SEARCH - COPY - MOVE 等,这表示在服务器上启用了 WebDAV,可能允许未授权的用户对其进行利用。安全级别中。安全风险可能会在 Web 服务器上上载、修改或删除 Web 页面、脚本和文件。解决方案如果服务器不需要支持 WebDAV,请务必禁

47、用它,或禁止不必要的 方法(动词)。技术实现添加过滤器,只允许POST和GET两个 方法访问系统。过滤器代码public class MethodFilter implements Filterpublic void destroy() public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) throws IOException, ServletException ServletRequest req = ( ServletRequest) request;

48、ServletResponse res = ( ServletResponse) response;String method = req.getMethod();if(!method.toUpperCase().equals(POST) & !method.toUpperCase().equals(GET)res.setStatus( ServletResponse.SC_FORBIDDEN);return;filterChain.doFilter(request, response);public void init(FilterConfig filterConfig) throws Se

49、rvletException web.xml配置 MethodFiltercn.victorysoft.devcenter ponent.usrmgr.security.filter. MethodFilter MethodFilter/*注意:此漏洞仅在Tomcat服务器中存在。BEA WebLogic 管理界面描述WebLogic 服务器包含若干管理用途的应用程序:/AdminMain、/AdminProps、/AdminRealm、webguitop.html 和 /console/index.jsp。 攻击者可以访问其中一或多个应用程序,也许能够更改 Web 站点的配置。安全级别中。安

50、全风险可能会升级用户特权并通过 Web 应用程序获取管理许可权。解决方案限制访问管理控制台,倘若不需要,请将其除去。技术实现将“console”改名,改一个和业务相关的标识名字即可。实现步骤:进入管理控制台,地址格式为: HYPERLINK :/ip:端口/console ip:端口/console点击左边的domain,如下图,点mydomain点击进入右边的配置常规选项卡,然后点显示,出现高级选项,如下图修改上图中的控制台上下文路径,如vseafConsole,然后点击右下角的应用按钮,然后重新启动服务器即可。访问管理控制台的地址格式变为: HYPERLINK :/ip:端口/vseafCo

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论