📄 cc.jsp
字号:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>
<jsp:include page="../cp_header.jsp" />
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="guide">
<tr><td><a href="#" onclick="parent.menu.location='admincp.jsp?action=menu'; parent.main.location='admincp.jsp?action=home';return false;">系统设置首页</a> » 基本设置</td></tr>
</table>
<br />
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td><div style="float:left; margin-left:0px; padding-top:8px"><a href="###" onclick="collapse_change('tip')">技巧提示</a></div><div style="float:right; margin-right:4px; padding-bottom:9px"><a href="###" onclick="collapse_change('tip')"><img id="menuimg_tip" src="images/admincp/menu_${collapsed ? 'add' : 'reduce'}.gif" border="0"/></a></div></td></tr>
<tbody id="menu_tip" style="display: ${collapsed ? 'none' : ''}">
<tr>
<td>
<ul>
<li>论坛安全设置, 调整以下设置,可以增强论坛的安全性能和防御性能。
<li>CC 攻击原理:<br>
CC主要是攻击页面。一般来说,访问的人越多,论坛的页面越多,数据库就越大,被访问的频率也越高,占用的系统资源也就相当可观。<br>
一个静态页面不需要服务器多少资源,甚至可以说直接从内存中读出来发给用户即可,但是论坛就不一样了,如用户浏览一个帖子,系统需要到数据库中判断该用户是否有读读帖子的权限,如果有,就读出帖子里面的内容,显示出来—— 这里至少访问了2次数据库,如果数据库的体积有200MB大小,系统很可能就要在这200MB大小的数据空间搜索一遍,这需要多少的CPU资源和时间?如果用户是查找一个关键字,那么时间更加可观,因为前面的搜索可以限定在一个很小的范围内,比如用户权限只查用户表,帖子内容只查帖子表,而且查到就可以马上停止查询,而搜索肯定会对所有的数据进行一次判断,消耗的时间是相当的大.<br>
CC就是充分利用了这个特点,模拟多个用户(多少线程就是多少用户)不停的进行访问(访问那些需要大量数据操作,就是需要大量CPU时间的页面).为什么要使用代理呢?因为代理可以有效地隐藏自己的身份,也可以绕开所有的防火墙,因为基本上所有的防火墙都会检测并发的TCP/IP连接数目,超过一定数目一定频率就会被认为是Connection-Flood.<br>
使用代理攻击还能很好的保持连接,我们这里发送了数据,代理帮我们转发给对方服务器,我们就可以马上断开,代理还会继续保持着和对方连接(目前所知的记录是有人利用2000个代理产生了35万并发连接).<br>
下面详细描述一下方便:假设服务器A对Search.asp的处理时间需要0.01S(多线程只是时间分割,对结论没有影响),也就是说他一秒可以保证100个用户的Search请求,服务器允许的最大连接时间为60s,那么我们使用CC模拟120个用户并发连接,那么经过1分钟,服务器的被请求了7200次,处理了6000次,于是剩下了1200个并发连接没有被处理. 有人会说:丢连接!丢连接!问题是服务器是按先来后到的顺序丢的,这1200个是在最后10秒的时候发起的,想丢?!还早,经过计算,服务器满负开始丢连接的时候,应该是有7200个并发连接存在队列,然后服务器开始120个/秒的丢连接,我们发动的连接也是120个/秒,服务器永远有处理不完的连接,服务器的CPU 100%并长时间保持,然后丢连接的60秒服务器也判断处理不过来了,新的连接也处理不了,这样服务器达到了超级繁忙状态.<br>
我们假设服务器处理Search只用了0.01S,也就是10毫秒(这个速度可以去各个有开放时间显示的论坛看看),我们使用的线程也只有120,很多服务器的丢连接时间远比60S长,我们的使用线程远比120多,这就非常可怕了,而且客户机只要发送了断开,连接的保持是代理做的,而且当服务器收到SQL请求,肯定会进入队列,不论连接是否已经断开,而且服务器是并发的,不是顺序执行,这样使得更多的请求进入内存请求,对服务器负担更大.<br>
当然,CC也可以利用这里方法对FTP进行攻击,也可以实现TCP-FLOOD,这些都是经过测试有效的. <br>
以上内容仅供参考。
</ul>
</td>
</tr>
</tbody>
</table>
<br />
<form method="post" name="settings" id="settings" action="admincp.jsp?action=safety&do=cc">
<a name="a45b0b68771fc480"></a>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="2">基本设置<a href="###" onclick="collapse_change('a45b0b68771fc480')"><img id="menuimg_a45b0b68771fc480" src="images/admincp/menu_reduce.gif" border="0" style="float: right; margin-top: -12px; margin-right: 8px;" /></a></td></tr>
<tbody id="menu_a45b0b68771fc480" style="display: yes">
<tr>
<td width="45%" class="altbg1">
<b>CC 防御:</b>
<br />
<span class="smalltxt">可防止大量的非正常请求造成的拒绝服务攻击,防护大量正常请求造成的拒绝服务攻击。</span>
<br/><font color="red"> 如果需要定制,请您访问官方:www.jsprun.com 联系客服人员,我们将以优惠价格,竭诚为您的社区安全问题,提供一站式安全服务,尽上一份绵薄之力!<p align="right">——北京飞速创想科技有限公司。</p></font>
</td>
<td class="altbg2">
<input class="checkbox" type="checkbox" ${attackevasive0} name="attackevasive0" value="1"> cookie 刷新限制<br />
<input class="checkbox" type="checkbox" ${attackevasive1} name="attackevasive1" value="2"> 限制代理访问<br />
<input class="checkbox" type="checkbox" ${attackevasive2} name="attackevasive2" value="4"> 二次请求<br />
<input class="checkbox" type="checkbox" ${attackevasive3} name="attackevasive3" value="8"> 回答问题(第一次访问时需要回答问题)<br />
</td>
</tr>
</tbody>
</table>
<br />
<center>
<input type="hidden" name="from" value="${from}">
<input class="button" type="submit" name="settingsubmit" value="提 交">
</center>
</form>
<jsp:include page="../cp_footer.jsp" />
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -