项目内部验收规范
1. 数据
1.1. 数据库表
1.1.1. 所有数据表主键检查
1.1.2. 表内数据唯一性检查,
1.1.3. 数据库能够建立外键要建立外键,外键不得设置成为关联删除
1.1.4. 序列是否初始值设置有误,导致出现数据重复
1.2. 表数据正确性检查
1.2.1. 特定表字段不存在错误数值(null值,成绩等数字字段存在文本值)
1.3. 数据完整性
1.3.1. 在同一页面进行多个数据操作时,必须保证事务处理方式
2. 程序
2.1. 老平台MyResultSet 是否全部被正确关闭,注意程序逻辑中会不会出现没关闭程序就结束的情况
2.2. 注意javascript是在脚本程序执行完成后返回客户端才进行执行,主要与脚本程序之间的调用关系(特别是history.back()的使用)
2.3. 程序命名注意大小写敏感
2.4. 数据校验可以采用ajax
2.5. 在同一页面进行多个数据操作时,必须保证事务处理方式
2.6. 中文传get法方式参数必须进行url编解码,另外包括特殊符号(&r等)处理
2.7. 程序文件编码格式要统一,采用utf-8
2.8. 所有jsp程序(除了页面明确需要缓存的页面)需要添加防止proxy缓存的页面。
2.9. whatyeditor的插入附件、图片等目录应为相对路径、同时注意焦点聚焦问题
3. 权限
3.1. 用户密码设置MD5加密
3.2. 权限页面添加权限检查过滤器
3.2.1. 总站,分站,后台管理员,学生,老师等相关角色
3.3. 特定目录禁止执行jsp,xtp等程序权限(incoming,courseware等)
3.4. 禁止目录浏览
3.5. 权限编号准确
3.5.1. 后台权限ID清晰,管理员页面权限编号准确
3.6. 模拟登陆问题处理
3.6.1. 模拟登陆session对象名称相同造成模拟登陆后管理员姓名变化。
3.7. 特定页面和程序设置IP访问权限或者时间访问权限
3.8. 课件访问权限(filter的添加)
4. 日志
4.1. 关键数据处理确保有日志记录
4.1.1. 全部管理员对数据的增删改有日志记录,需记录操作人,操作内容,操作时间
4.2. 日志记录方式可靠准确
4.2.1. 采用log4j方式进行日志记录,确保日志记录文件清晰可查,文件设置要可分解。
4.2.2. 日志备份完全(异地备份)
5. 数据备份
5.1. 确保数据库与平台配置了自动备份脚本
5.1.1. 自动备份数据库脚本,自动备份web中的incoming,courseware,excel等中的文件和脚本
5.2. 确保自动备份内容能够正确恢复。
5.2.1. 确保备份内容异地存储,并确认备份内容能够正确恢复
6. 服务器配置
6.1. Web服务器
6.1.1. Apache是否设置了禁止目录浏览
6.1.2. Resin配置中是否根据客户服务器,进行了使用内存的配置
6.1.3. Resin配置中是否更改了数据库链接池的配置
6.1.4. Apache和Resin配置中是否对log文件配置了定期拆分和备份(异地)
6.1.5. Resin是否设置了禁止目录浏览
6.1.6. Apache限制多线程下载
6.1.7. Resin、Apache正确配置mime-type
6.2. 数据库服务器
6.2.1. 是否限制访问权限,普通用户不能设为DBA管理权限
6.2.2. 数据库密码必须每个用户设置成为不同的密码
6.2.3. Oracle配置中正确配置了最大连接数,open_cursor、使用内存等相关参数
6.2.4. 表空间和临时表空间是否设置为相关用户
6.2.5. 数据库访问用户权限是否严格限制
6.3. 服务器其它相关检查
6.3.1. 采用SSS等扫描工具进行扫描,确保操作系统和网络不出现漏洞
6.3.2. 对服务器关键服务、CPU使用率进行监控,保证能够及时通知相关管理人员
6.3.3. 对存储空间进行监控和及时报警,防止存储空间出现溢出
6.3.4. 对apache,resin,oracle的错误日志(error.log等)进行定期检查,分析错误内容并进行记录
内部验收检查单 | |||
检查条目 | 是否通过 | 备注 | |
1. 数据(检查完毕) |
|
| |
1.1. 数据库表 |
|
| |
1.1.1. 所有数据表主键检查 |
|
| |
1.1.2. 表内数据唯一性检查, |
|
| |
1.1.3. 数据库能够建立外键要建立外键,外键不得设置成为关联删除 |
|
| |
1.1.4. 序列是否初始值设置有误,导致出现数据重复 |
|
| |
1.2. 表数据正确性检查 |
|
| |
1.2.1. 特定表字段不存在错误数值(null值,成绩等数字字段存在文本值) |
|
| |
1.3. 数据完整性 |
|
| |
1.3.1. 在同一页面进行多个数据操作时,必须保证事务处理方式 |
|
| |
2. 程序 |
|
| |
2.1. 老平台MyResultSet 是否全部被正确关闭,注意程序逻辑中会不会出现没关闭程序就结束的情况 |
|
| |
2.2. 注意javascript是在脚本程序执行完成后返回客户端才进行执行,主要与脚本程序之间的调用关系(特别是history.back()的使用) |
|
| |
2.3. 程序命名注意大小写敏感 |
|
| |
2.4. 数据校验可以采用ajax |
|
| |
2.5. 在同一页面进行多个数据操作时,必须保证事务处理方式 |
|
| |
2.6. 中文传get法方式参数必须进行url编解码 |
|
| |
2.7. 程序文件编码格式要统一,采用utf-8 |
|
| |
2.8. 所有jsp程序(除了页面明确需要缓存的页面)需要添加防止proxy缓存的页面。 |
|
| |
2.9. whatyeditor的插入附件、图片等目录应为相对路径、同时注意焦点聚焦问题 |
|
| |
3. 权限 |
|
| |
3.1. 用户密码设置MD5加密 |
|
| |
3.2. 权限页面添加权限检查过滤器 |
|
| |
3.2.1. 总站,分站,后台管理员,学生,老师等相关角色 |
|
| |
3.3. 特定目录禁止执行jsp,xtp等程序权限(incoming,courseware等) |
|
| |
3.4. 禁止目录浏览 |
|
| |
3.5. 权限编号准确 |
|
| |
3.5.1. 后台权限ID清晰,管理员页面权限编号准确 |
|
| |
3.6. 模拟登陆问题处理 |
|
| |
3.6.1. 模拟登陆session对象名称相同造成模拟登陆后管理员姓名变化。 |
|
| |
3.7. 特定页面和程序设置IP访问权限或者时间访问权限 |
|
| |
3.8. 课件访问权限(filter的添加) |
|
| |
4. 日志 |
|
| |
4.1. 关键数据处理确保有日志记录 |
|
| |
4.1.1. 全部管理员对数据的增删改有日志记录,需记录操作人,操作内容,操作时间 |
|
| |
4.2. 日志记录方式可靠准确 |
|
| |
4.2.1. 采用log4j方式进行日志记录,确保日志记录文件清晰可查。 |
|
| |
4.2.2. 日志备份完全(异地备份) |
|
| |
5. 数据备份 |
|
| |
5.1. 确保数据库与平台配置了自动备份脚本 |
|
| |
5.1.1. 自动备份数据库脚本,自动备份web中的incoming,courseware中的文件和脚本 |
|
| |
5.2. 确保自动备份内容能够正确恢复。 |
|
| |
5.2.1. 确保备份内容异地存储,并确认备份内容能够正确恢复 |
|
| |
6. 服务器配置 |
|
| |
6.1. Web服务器 |
|
| |
6.1.1. Apache是否设置了禁止目录浏览 |
|
| |
6.1.2. Resin配置中是否根据客户服务器,进行了使用内存的配置 |
|
| |
6.1.3. Resin配置中是否更改了数据库链接池的配置 |
|
| |
6.1.4. Apache和Resin配置中是否对log文件配置了定期拆分和备份(异地) |
|
| |
6.1.5. Resin是否设置了禁止目录浏览 |
|
| |
6.1.6. Apache限制多线程下载 |
|
| |
6.1.7. Resin、Apache正确配置mime-type |
|
| |
6.2. 数据库服务器 |
|
| |
6.2.1. 是否限制访问权限,普通用户不能设为DBA管理权限 |
|
| |
6.2.2. 数据库密码必须每个用户设置成为不同的密码 |
|
| |
6.2.3. Oracle配置中正确配置了最大连接数,open_cursor、使用内存等相关参数 |
|
| |
6.2.4. 表空间和临时表空间是否设置为相关用户 |
|
| |
6.2.5. 数据库访问用户权限是否严格限制 |
|
| |
6.3. 服务器其它相关检查 |
|
| |
6.3.1. 采用SSS等扫描工具进行扫描,确保操作系统和网络不出现漏洞 |
|
| |
6.3.2. 对服务器关键服务、CPU使用率进行监控,保证能够及时通知相关管理人员 |
|
| |
6.3.3.对存储空间进行监控和及时报警,防止存储空间出现溢出 |
|
| |
6.3.4.对error.log进行定期检查,分析错误内容并进行记录 |
|
| |
结论:
| |||
审核人: | 审核时间: |
技术方案 | ||
检查条目 | 详细方案 | 其他说明 |
1. 数据 |
|
|
1.1. 数据库表 |
|
|
1.1.1. 所有数据表主键检查 | 一个表只能有一个主键,一个主键可以是一列也可以是多列,可以通过图形界面(PLSQL_Developer)直接为表建立主键(primary Key),SQL语句为: alter table 表名 add constraint 主键名 primary key (对应列); |
|
1.1.2. 表内数据唯一性检查, | 唯一性约束(unique),可以保证该列或者几列中的数据不会重复,可以通过图形界面(PLSQL_Developer)直接为表建立唯一性约束,SQL语句为:alter table 表名 add constraint 唯一性约束名 unique (对应列); |
|
1.1.3. 数据库能够建立外键要建立外键,外键不得设置成为关联删除 | 外键可以保证数据的一致性,不至于出现冗余数据,注意外键应该与其他表的主键所在列或者建立唯一性约束的列关联,可以通过图形界面(PLSQL_Developer)直接为表建立外键,但是on delete 不得选择Cascade,SQL语句为:alter table 表名 add constraint 外键名 foreign key (外键所在列) references 关联表 (关联列); |
|
1.1.4. 序列是否初始值设置有误,导致出现数据重复 | 利用select 序列名.currval from dual查看当前序列值与需要该序列的列中的最大值比较,序列的当前值必须大于该列的最大值 |
|
1.2. 表数据正确性检查 |
|
|
1.2.1. 特定表字段不存在错误数值(null值,成绩等数字字段存在文本值) | 通过查询语句查看 Select count(*) from 表 where 特定列 is null or 特定列=trim(‘null’) Select to_number(列名) from 表 出现无效数字提示 |
|
1.3. 数据完整性 |
|
|
1.3.1. 在同一页面进行多个数据操作时,必须保证事务处理方式 | 可以使用dbpool中的executeUpdateBatch(sqlGroup)方法,最好是使用spring等框架提供的事务处理方案 |
|
2. 程序 |
|
|
2.1. 老平台MyResultSet 是否全部被正确关闭,注意程序逻辑中会不会出现没关闭程序就结束的情况 | 通过ultraedit查询定义rs的程序,检查是否存在work.close(rs)语句,特别注意在work.close(rs)不能出现分支程序导致程序return |
|
2.2. 注意javascript是在脚本程序执行完成后返回客户端才进行执行,主要与脚本程序之间的调用关系(特别是history.back()的使用) | 对于通过javascript进行的页面跳转,注意javascript脚本是服务器运行完jsp脚本后返回客户端之后才执行的。 |
|
2.3. 程序命名注意大小写敏感 | 对于linux系统中,文件间的跳转是区分大小写的,而开发所在的windows是不区分大小写的,因此建议所有jsp文件都用小写。 |
|
2.4. 数据校验可以采用ajax | 每个输入页面都要进行有效的数据校验,建议采用ajax对正确性进行检验 |
|
2.5. 在同一页面进行多个数据操作时,必须保证事务处理方式 | 可以使用dbpool中的executeUpdateBatch(sqlGroup)方法,最好是使用spring等框架提供的事务处理方案 |
|
2.6. 中文传get法方式参数必须进行url编解码 | 在linux系统中,get方法传递的中文可能出现乱码问题,必须采用java.net.URLEncoder.encode()进行扰码和java.net.URLDecoder.decode() 解码 |
|
2.7. 程序文件编码格式要统一,采用utf-8 | 检查eclipse中的属性,同时应该有相关的工具可以检测 |
|
2.8. 所有jsp程序(除了页面明确需要缓存的页面)需要添加防止proxy缓存的页面。 | response.setHeader("Pragma","No-cache");//HTTP 1.1 response.setHeader("Cache-Control","no-cache");//HTTP 1.0 response.setHeader("Expires","0");//防止被proxy |
|
2.9. whatyeditor的插入附件、图片等目录应为相对路径、同时注意焦点聚焦问题 | 相对路径 检查调用whatyeditor页面是否增加以下代码 document.info_news_add.body.value=Absolute2Relative(document.info_news_add.body.value);//替换绝对路径 焦点聚焦 检查whatyeditor目录下enrichText.js文件insertText(mark)方法 function insertText(Mark){ var strHTML;
if (bIsIE5) selectRange(); //if (RangeType == "Text") { strHTML = Mark; //textEdit.document.select(); //edit = textEdit.document.selection.createRange(); if (textEdit.document.selection.type=="Control") { var myobj; alert("光标停留位置为一个对象,将被取代。"); //+textEdit.document.selection.innerHTML); myobj = textEdit.document.selection.createRange(); //edit(1).outerHTML myobj(0).outerHTML=strHTML; //edit.pasteHTML(strHTML); //edit.insertAdjacentHTML("afterEnd",strHTML); //eb._editor.frames.textEdit.document.selection. }; else{
edit = textEdit.document.selection;
if (edit!=null) { var rng = edit.createRange(); if (rng!=null) rng.pasteHTML(strHTML); } else { edit = textEdit.document.body; edit.innerHTML= edit.innerHTML + strHTML; }
textEdit.focus(); edit.select();
} // edit: textEdit.document.selection.createRange() } } |
|
3. 权限 |
|
|
3.1. 用户密码设置MD5加密 | 设置MD5加密,学生、老师和管理员的密码不可查询,只可以重置(李科) |
|
3.2. 权限页面添加权限检查过滤器 |
|
|
3.2.1. 总站,分站,后台管理员,学生,老师等相关角色 | 以管理员为例,首先撰写Filter类 package com.whaty.filter;
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import com.whaty.dls.UserInfo;
public class ManagerWebPageAccessFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req; HttpServletResponse response = (HttpServletResponse) res; HttpSession session = request.getSession(); //获取当前用户的session UserInfo userInfo = (UserInfo) session.getAttribute("managerInfo"); //如果用户已经登录,进一步判断其身份 if (userInfo != null) { //用户的类别,共有isManager,isStudent,isTeacher String level = userInfo.getLevel(); //用户的站点属性,1代表总站管理员 String siteId = userInfo.getSite(); //如果当前用户已经登录,但不是以总站管理员身份登录 if (!"isManager".equalsIgnoreCase(level) || !"1".equalsIgnoreCase(siteId)) { response.sendError(403, "You haven't logon as Manager!"); return; } else { chain.doFilter(request, response); } } else {//用户没有登录 response.sendError(403, "You haven't logon!"); return; } } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } } 然后配置web.xml文件,增加Filter <filter> <filter-name>ManagerWebPageAccessFilter</filter-name> <filter-class>com.whaty.filter.ManagerWebPageAccessFilter</filter-class> </filter> <filter-mapping> <filter-name>ManagerWebPageAccessFilter</filter-name> <url-pattern>/work/manager/*.jsp</url-pattern> </filter-mapping> 注意:如果一个Filter需要过滤多种的情况下,不同的resin版本配置方法不太一样。 <dispatcher>INCLUDE</dispatcher> <dispatcher>FORWARD</dispatcher> <dispatcher>ERROR</dispatcher> <dispatcher>REQUEST</dispatcher> |
|
3.3. 特定目录禁止执行jsp,xtp等程序权限(incoming,courseware等) | 首先撰写Filter类 package com.whaty.filter;
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletResponse;
public class FileLimitFilter implements Filter { public void destroy() { // TODO Auto-generated method stub } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { HttpServletResponse response = (HttpServletResponse) res; response.sendError(403); return; } public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } } 在web.xml中加入 <filter> <filter-name>FileLimitFilter</filter-name> <filter-class>com.whaty.filter.FileLimitFilter</filter-class> </filter> <filter-mapping> <filter-name>FileLimitFilter</filter-name> <url-pattern>/incoming/*.jsp</url-pattern> </filter-mapping> <filter-mapping> <filter-name>FileLimitFilter</filter-name> <url-pattern>/incoming/*.xtp</url-pattern> </filter-mapping> 配置方法同3.2.1 |
|
3.4. 禁止目录浏览 | 在web.xml中增加<directory-servlet>none</directory-servlet> Resin的目录访问禁止方法,resin 2.x 和resin 3.x的配置方法不同 ◇Resin 2.x的配置方法: 在resin.conf文件中在配置的每个web-app后增加一个属性directory-servlet=’none’,例如<web-app id='/' directory-servlet='none'> ◇Resin 3.x的配置方法: resin.conf中 注释掉就可以了
。
|
|
3.5. 权限编号准确 |
|
|
3.5.1. 后台权限ID清晰,管理员页面权限编号准确 |
|
|
3.6. 模拟登陆问题处理 |
|
|
3.6.1. 模拟登陆session对象名称相同造成模拟登陆后管理员姓名变化。 |
|
|
3.7. 特定页面和程序设置IP访问权限或者时间访问权限 | 可以通过request.getRemoteAddr()方法获得远程访问者的IP |
|
3.8. 课件访问权限(filter的添加) | 针对apache和IIS、resin写相关的filter(陈健) |
|
4. 日志 |
|
|
4.1. 关键数据处理确保有日志记录 |
|
|
4.1.1. 全部管理员对数据的增删改有日志记录,需记录操作人,操作内容,操作时间 |
|
|
4.2. 日志记录方式可靠准确 | 对log4j.properties 文件根据用户实际情况进行重新配置 |
|
4.2.1. 采用log4j方式进行日志记录,确保日志记录文件清晰可查。 | log4j.appender.A1=org.apache.log4j.RollingFileAppender log4j.appender.A1.File=F:/logs/teachers_operation.log log4j.appender.A1.MaxFileSize=5120KB log4j.appender.A1.MaxBackupIndex=1000 log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p %l : %m%n |
|
4.2.2. 日志备份完全(异地备份) | 自动备份脚本,注意备份策略,同5.1.1 | 客户没有提供异地备份条件 |
5. 数据备份 |
|
|
5.1. 确保数据库与平台配置了自动备份脚本 |
|
|
5.1.1. 自动备份数据库脚本,自动备份web中的incoming,courseware中的文件和脚本 | 备份: Linux: 使用oracle 用户 脚本程序exp.sh:(需要设定可执行权限) cd /home/oracle exptime=$(date +%Y-%m-%d) workname1=dbdx exp $workname1/z9z7w7w8 GRANTS=Y file=$workname1"_"$exptime.dmp owner=$workname1 使用crontab –e 来进行定时备份设置 例如:0 20 * * 1,4 su - oracle /home/oracle/exp1.sh Windows: 脚本:朱高建,张宏光 使用任务计划进行执行。
|
|
5.2. 确保自动备份内容能够正确恢复。 | Exp,imp; 冷备份 rman等(汪强(一个月))
|
|
5.2.1. 确保备份内容异地存储,并确认备份内容能够正确恢复 | 异地备份: 张宏光(windows),
Linux: ftp备份命令 ftp -in<put.ftp put.ftp内容如下: open 192.168.0.10 2121 user ftp用户名 ftp密码 bin lcd /home/oracle/backup put whatysmsgw_*.dmp bye
|
|
6. 服务器配置 |
|
|
6.1. Web服务器 |
|
|
6.1.1. Apache是否设置了禁止目录浏览 | Apache的目录访问禁止方法 找到Apache 的 httpd.conf 配置文件将: |
|
6.1.2. Resin配置中是否根据客户服务器,进行了使用内存的配置 | Linux: linux:修改 wrapper.pl $JAVA_ARGS="-Xms512m -Xmx1024m -XX:MaxNewSize=512m -XX:MaxPermSize=512m -Djava.awt.headless=true"; Windows: windows下可以采用在配置服务的时候加入参数的方法或在启动是加上-Xmx等参数进行配置, windows下可以通过httpd.exe -Xmn100M -Xms500M -Xmx500M -install 配置成为系统服务,httpd.exe -remove 可以卸载此服务 |
|
6.1.3. Resin配置中是否更改了数据库链接池的配置,还有thread的连接数等 | <database> <jndi-name>jdbc/jforum</jndi-name> <driver type="org.gjt.mm.mysql.Driver"> <url>jdbc:mysql://localhost:3306/jforum</url> <user>jforum</user> <password>jforum</password> </driver> <prepared-statement-cache-size>8</prepared-statement-cache-size> <max-connections>20</max-connections> <max-idle-time>30s</max-idle-time> </database> |
|
6.1.4. Apache和Resin配置中是否对log文件配置了定期拆分和备份(异地) | Linux apache: CustomLog "|/www/bin/rotatelogs /www/logs/access_log 86400 100M" combined ErrorLog "|/www/bin/rotatelogs /www/logs/error_log 100M"
resin <log name="" level="all" path="stdout:" timestamp="[%H:%M:%S.%s] "/> Windows apache日志拆分 CustomLog "|C:/Apache2/bin/rotatelogs.exe C:/Apache2/logs/access.log 10M" common ErrorLog "|C:/Apache2/bin/rotatelogs.exe C:/Apache2/logs/error.log 10M"
resin日志拆分 <access-log id='logs/access.log' format='%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i"' archive-format="access-%Y_%m_%d.log" rollover-period='1D'/> <error-log id='logs/error.log' sarchive-format="error-%Y_%m_%d.log" rollover-period='3D'/>
异地备份请参考5.2.1 | 对Log文件拆分已添加 |
6.1.5. Resin是否设置了禁止目录浏览 | 在web.xml中增加<directory-servlet>none</directory-servlet> Resin的目录访问禁止方法,resin 2.x 和resin 3.x的配置方法不同 ◇Resin 2.x的配置方法: 在resin.conf文件中在配置的每个web-app后增加一个属性directory-servlet=’none’,例如<web-app id='/' directory-servlet='none'> ◇Resin 3.x的配置方法: resin.conf中 注释掉就可以了
|
|
6.1.6. Apache限制多线程下载 | (朱高建) |
|
6.1.7 Resin、Apache正确配置mime-type | (李科) |
|
6.2. 数据库服务器 |
|
|
6.2.1. 是否限制访问权限,普通用户不能设为DBA管理权限 | 李科 |
|
6.2.2. 数据库密码必须每个用户设置成为不同的密码 | 李科 |
|
6.2.3. Oracle配置中正确配置了最大连接数,open_cursor、使用内存等相关参数 | open_cursors= 1500 (建议1500) java_pool_size= 2124632064*5%=106231603(内存5%) large_pool_size=2124632064*2.5% =53115801 (内存的2.5%) shared_pool_size= 2124632064*10%=212463206(内存的10%) processes= 1000 (建议600以上) pga_aggregate_target=106231603(内存的5%) sort_area_size=1024*1024*10=10485760 (建议10MB) |
|
6.2.4. 表空间和临时表空间是否设置为相关用户 | 李科 |
|
6.2.5. 数据库访问用户权限是否严格限制 | 李科 |
|
6.3. 服务器其它相关检查 |
|
|
6.3.1. 采用SSS等扫描工具进行扫描,确保操作系统和网络不出现漏洞 | 根据SSS出报告,汪强 |
|
6.3.2. 对服务器关键服务、CPU使用率进行监控,保证能够及时通知相关管理人员 | 陈健 |
|
6.3.3.对存储空间进行监控和及时报警,防止存储空间出现溢出 | 陈健 |
|
6.3.4.对error.log进行定期检查,分析错误内容并进行记录 | 形成相关日志分析报告,报质量部 |
|