您好,欢迎来到九壹网。
搜索
您的当前位置:首页接口设计方案

接口设计方案

来源:九壹网
。

接口设计方案

一、设计方案

由甲方调用监控模块,控制监控模块的启停、设置策略等,通过甲方调用监控模块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 { };

classIFileChecker { public:

virtualvoidInit(constchar *pKeyWords) = 0;

virtualboolGetFileInfo(constchar *pFilePath, TipsFileBlock *pTFB) = 0; virtualvoidFreeFileInfo(TipsFileBlock * pTFB) = 0; virtualvoidUnInit() = 0; virtualvoidStopCheck() = 0; char *pKeyWords;//关键字 char *pSecretLevel;

//密级:秘密、机密、绝密中的一个

char*pFileBlock; //片段

-可编辑修改-

};

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:

Type = \"上传;下载;\" MonFileType = \"txt;doc;\"MonProcess

=\"qq.exe;explorer.exe;\"WhiteProcess = \"explorer.exe;wps.exe;\"IsBan =\"0\">

-可编辑修改-

密;绝密;\"MonFileType = \"txt;doc;\"MonProcess =\"qq.exe;explorer.exe;\"WhiteProcess = \"word.exe;wps.exe;\"IsBan =\"0\">

解释:

TipsType Type = \"Rule\"为规则xml IsMon:是否监控 1监控 0不监控

MonPath:监控文件夹,采用分号拼接,如果为空表示全盘监控 MonFileType:监控文件类型,采用分号拼接,如果为空表示不限类型 IsBan:是否拦截 1拦截 0不拦截

FileNameWords:文件名检查关键字,如果为空表示不检查 ContentWords:文件内容检查关键字,如果为空表示不检查 WhiteProcess:进程白名单 WhitePath:监控路径白名单

MonProcess:监控进程,如果为空表示全部监控 附2: 结果XML:

NET操作行为监控举例:

-可编辑修改-

OperType =\"下载\"FileType = \"txt \"IsBan OperType =\"上传\"FileType = \"txt \"IsBan

Net内容监控举例:

OperType =\"下载\"FileType = \"txt \"Keyword =

-可编辑修改-

\"秘密\" Content = \"这是一个秘密文档\"IsBan =\"0\"/>

-可编辑修改-

THANKS !!!

致力为企业和个人提供合同协议,策划案计划书,学习课件等等

打造全网一站式需求

欢迎您的下载,资料仅供参考

-可编辑修改-

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务