收藏 分销(赏)

接口设计专项方案.docx

上传人:人****来 文档编号:3022514 上传时间:2024-06-13 格式:DOCX 页数:9 大小:21.97KB 下载积分:6 金币
下载 相关 举报
接口设计专项方案.docx_第1页
第1页 / 共9页
接口设计专项方案.docx_第2页
第2页 / 共9页


点击查看更多>>
资源描述
接口设计方案 一、设计方案 由甲方调用监控模块,控制监控模块启停、设置策略等,经过甲方调用监控模块DLL接口将监控策略通知监控模块,由监控模块监控相关操作行为,并依据策略配置调用甲方提供文件内容检验模块,对相关文件进行文件内容筛查,来确定文件是否是涉密文件。同时经过甲方程序调用乙方监控模块DLL接口获取监控结果。 甲方文件内容检验模块 甲方 程序 监控 监控模块DLL 一、接口部分(监控模块DLL,乙方提供) ************************************ Function:Init Description:初始化操作 Input:无 Output:无 Return:true:成功,false:失败 Other: *********************************** 1、bool Init(); ************************************ Function:SetRule Description:设置监控规则 Input:char* pRule:监控规则,XML格式,见附1 Output:无 Return:true:成功,false:失败 Other: *********************************** 2、bool SetRule(char* pRule); ************************************ Function:Start Description:设置完规则,开启监控规则生效 Input:无 Output:无 Return:true:成功,false:失败 Other: *********************************** 3、bool Start(); ************************************ Function:WaitData Description:实时等候获取监控数据能够是一条能够是多条。返回监控结果见附2 Input:无 Output: int &nCount返回总条数,char**&pData返回数据。 Return:-1.异常0.成功获取数据1.结束 / 停止(其它地方调用Stop接口停止) Other:提议乙方内部实现用信号、内核事件等处理方法。 *********************************** 4、int WaitData(int &nCount, char**& pData); 甲方调用伪代码: ThreadFunc() //实时线程 { While(TRUE) { char** pData = NULL; int nCount = 0; int nRet = WaitData(nCount,pData); //等候一条或多条数据时返回,没有数据就等候。 switch(nRet) { -1.异常continue; 0.成功获取数据 pData[0]、pData[1]、…… 1.结束 / 停止(其它地方调用Stop停止) Return; } FreeData(pData); } } ************************************ Function:FreeData Description:释放数据内存接口,对应WaitData函数 Input:int nCount 要释放元素数量,char**要释放数据 Output:无 Return:无 Other: *********************************** 5、FreeData (int nCount ,char** pData); ************************************ Function:Stop Description:停止监控,监控规则失效 Input:无 Output:无 Return:true:成功,false:失败 Other: *********************************** 6、bool Stop(); ************************************ Function:UnInit Description:程序退出 Input:无 Output:无 Return:true:成功,false:失败 Other: *********************************** 7、UnInit(); 二、文件检验模块 /*********************接口说明*************************** //创建文件检验实例 void (*PCreateFileCheckerObject)(IFileChecker **pObject); //释放文件检验实例 void (*PReleaseFileCheckerObject)(IFileChecker **pObject); 多规则多个关键字组合,则创建多个实例 ----------------------- IFileChecker-------------------------- //初始化 void Init(const char *pName, const char *pKeyWords); pName:实例名称随意。但多个实例并行时不能反复; pKeyWords: 关键词组。格式:"机密;秘密;绝密;" //结束调用 void UnInit(); //获取文件信息 bool GetFileInfo(const char *pFilePath, TipsFileBlock *pTFB); pFilePath:文件路径 pTFB:返回数据结构 //释放文件信息 void FreeFileInfo(TipsFileBlock * pTFB); pTFB:需要释放数据结构 //停止目前文件检验 void StopCheck(); *************************************************************/ //------------------------------(.h)头文件以下----------------------------- #pragmaonce structTipsFileBlock { char *pKeyWords;//关键字 char *pSecretLevel; //密级:秘密、机密、绝密中一个 char*pFileBlock; //片段 }; classIFileChecker { public: virtualvoidInit(constchar *pKeyWords) = 0; virtualboolGetFileInfo(constchar *pFilePath, TipsFileBlock *pTFB) = 0; virtualvoidFreeFileInfo(TipsFileBlock * pTFB) = 0; virtualvoidUnInit() = 0; virtualvoidStopCheck() = 0; }; typedefvoid (*PCreateFileCheckerObject)(IFileChecker **pObject); typedefvoid (*PReleaseFileCheckerObject)(IFileChecker **pObject); //------------------------------头文件 end----------------------------- //示例 //--------------获取接口类----------------- HMODULE hDll = LoadLibrary(_T("TipsFileChecker.dll")); if (NULL ==hDll) return; PCreateFileCheckerObjectpCreateFileChecker = (PCreateFileCheckerObject)GetProcAddress(hDll,"CreateFileCheckerObject"); PReleaseFileCheckerObjectpReleaseFileChecker = (PReleaseFileCheckerObject)GetProcAddress(hDll,"ReleaseFileCheckerObject"); if (NULL == pCreateFileChecker || NULL == pReleaseFileChecker) return; IFileChecker* pFileChecker = NULL; pCreateFileChecker(&pFileChecker); //---------------初始化提供关键字------------ CStringAstrName = "FeiMi1"; //多个实例名称任意,但不一样。比如:FeiMi2、FeiMi3、… CStringAstrKeyWords = "秘密;机密;绝密; "; pFileChecker->Init(strName,strKeyWords); //----------------文件命中片段提取--------- CStringAstrFilePath = "C:\\123.docx"; TipsFileBlockfb; pFileChecker->GetFileInfo(strFilePath,&fb); //.... pFileChecker->FreeFileInfo(&fb); //----------------------结束释放---------------- pFileChecker->StopCheck(); pFileChecker->UnInit(); pReleaseFileChecker(&pFileChecker); FreeLibrary(hDll); 三、附 附1: 规则XML: <TipsTCM> <TipsTypeType = "Rule"> <Rule> <NetOperIsMon = "1" Type = "上传;下载;" MonFileType = "txt;doc;"MonProcess ="qq.exe;explorer.exe;"WhiteProcess = "explorer.exe;wps.exe;"IsBan ="0"> <NetContent IsMon = "1" Type = "上传;下载;" FileNameWords = "秘密;绝密;"ContentWords = "秘密;绝密;"MonFileType = "txt;doc;"MonProcess ="qq.exe;explorer.exe;"WhiteProcess = "word.exe;wps.exe;"IsBan ="0"> </Rule> </TipsType> </TipsTCM> 解释: TipsType Type = "Rule"为规则xml IsMon:是否监控 1监控 0不监控 MonPath:监控文件夹,采取分号拼接,假如为空表示全盘监控 MonFileType:监控文件类型,采取分号拼接,假如为空表示不限类型 IsBan:是否拦截 1拦截 0不拦截 FileNameWords:文件名检验关键字,假如为空表示不检验 ContentWords:文件内容检验关键字,假如为空表示不检验 WhiteProcess:进程白名单 WhitePath:监控路径白名单 MonProcess:监控进程,假如为空表示全部监控 附2: 结果XML: NET操作行为监控举例: <TipsTCM> <TipsTypeType = "Result"> <TipsResultType="NetOper"> <Result FilePath = "c:\1.txt" Process = "explorer.exe" OperType ="上传"FileType = "txt "IsBan ="0"/> </TipsResult> </TipsType> </TipsTCM> <TipsTCM> <TipsTypeType = "Result"> <TipsResultType="NetOper"> <Result FilePath = "c:\1.txt" Process = "explorer.exe" OperType ="下载"FileType = "txt "IsBan ="0"/> </TipsResult> </TipsType> </TipsTCM> Net内容监控举例: <TipsTCM> <TipsTypeType = "Result"> <TipsResultType ="NetContent "> <Result FilePath = "c:\1.txt" Process = "explorer.exe" OperType ="下载"FileType = "txt "Keyword = "秘密" Content = "这是一个秘密文档"IsBan ="0"/> </TipsResult> </TipsType> </TipsTCM>
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服