发明内容
本申请的主要目的在于提出一种窗口操作行为审计方法、系统、电子装置及计算机可读存储介质,旨在解决如何准确对复制和粘贴行为进行审计和拦截,并避免内容丢失的问题。
为实现上述目的,本申请实施例提供了一种窗口操作行为审计方法,所述方法包括:
创建一个指定窗口;
将所述指定窗口设置为剪切板所有者;
当所述指定窗口作为所述剪切板所有者接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为,其中,所述窗口操作行为包括复制行为、粘贴行为;
当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为。
可选地,所述方法还包括:
记录对所述复制行为或所述粘贴行为的审计结果。
可选地,所述将所述指定窗口设置为剪切板所有者包括:
获取当前的剪切板所有者第一窗口;
获取所述第一窗口对应的第一剪切板内容;
将所述指定窗口设置为所述剪切板所有者;
根据所述第一剪切板内容更新所述指定窗口的剪切板内容。
可选地,所述当接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为包括:
当采用所述指定窗口作为所述剪切板所有者接收到新事件时,判断所述新事件是否为复制行为事件,其中,当发生所述复制行为事件时,第二窗口发出清除事件,以将所述剪切板所有者从所述指定窗口切换为所述第二窗口;
当所述新事件为所述复制行为事件时,获取作为新的剪切板所有者的所述第二窗口;
根据预设的第一业务逻辑判断所述第二窗口是否允许所述复制行为。
可选地,所述当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为包括:
当所述第二窗口允许所述复制行为时,获取所述第二窗口对应的第二剪切板内容;
将所述指定窗口重新设置为所述剪切板所有者;
根据所述第二剪切板内容更新所述指定窗口的剪切板内容。
可选地,所述当接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为包括:
当采用所述指定窗口作为所述剪切板所有者接收到新事件时,判断所述新事件是否为粘贴行为事件;
当所述新事件为所述粘贴行为事件时,根据预设的第二业务逻辑判断所述第二窗口是否允许所述粘贴行为。
可选地,所述当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为包括:
当所述第二窗口允许所述粘贴行为时,将所述指定窗口的剪切板内容传送至粘贴区域。
可选地,所述获取当前的剪切板所有者第一窗口包括:调用X11服务的XGetSelectionOwner函数获取当前的剪切板所有者。
可选地,所述获取所述第一窗口对应的第一剪切板内容包括:调用X11服务的XConvertSelection接口获取当前剪切板内容,得到所述第一剪切板内容。
可选地,所述将所述指定窗口设置为所述剪切板所有者包括:调用X11服务的XSetSelectionOwner函数将所述指定窗口设置为所述剪切板所有者。
此外,为实现上述目的,本申请实施例还提供一种窗口操作行为审计系统,所述系统包括:
创建模块,用于创建一个指定窗口;
设置模块,用于将所述指定窗口设置为剪切板所有者;
判断模块,用于当所述指定窗口作为所述剪切板所有者接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为,其中,所述窗口操作行为包括复制行为、粘贴行为;
执行模块,用于当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为。
为实现上述目的,本申请实施例还提供一种电子装置,所述电子装置包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的窗口操作行为审计程序,所述窗口操作行为审计程序被所述处理器执行时实现如上述的窗口操作行为审计方法。
为实现上述目的,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有窗口操作行为审计程序,所述窗口操作行为审计程序被处理器执行时实现如上述的窗口操作行为审计方法。
本申请实施例提出的窗口操作行为审计方法、系统、电子装置及计算机可读存储介质,能够通过基于X11服务创建一个指定窗口,将所述指定窗口始终设置为X11的剪切板所有者,使得所有复制行为和粘贴行为都需要通过所述指定窗口管控,从而实现对所述复制行为和粘贴行为的审计,有效提高了感知所述复制行为和粘贴行为的准确性以及审计效率。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
请参阅图1,图1为实现本申请各个实施例的一种应用环境架构图。本申请可应用于包括,但不仅限于显示端2和服务端4的应用环境中。
其中,显示端2用于通过一个或多个窗口向用户显示文件、网页等数据内容。所述显示端2可以是终端设备的显示器等。
服务端4用于针对所述窗口中的数据内容的所有复制行为和粘贴行为进行监测和控制。在本申请各个实施例中,所述服务端4基于X11服务为所述显示端2的桌面显示进行服务。
X11服务是一种X协议服务,所有的客户端都使用约定的X协议和X服务器进行通信,将需要显示的图像信息告知X服务器,其中包括窗口大小、位置、内容和属性等一系列信息。X服务器再将所有客户端的信息整合,将图像展示在显示端2上。
本申请各个实施例应用于特殊部门和组织或者特殊应用场景,需要对特定的网页或文件等内容进行管控,在这个过程中需要审计复制和粘贴的行为,而且需要形成审计结果以便后期溯源。
虽然X协议服务是用于显示图案的,但是剪切板的内容其实是窗口属性的一部分,复制和粘贴行为也是通过X11服务进行通信。利用这一特性,将一个指定窗口始终注册为剪切板所有者,让所有的复制行为和粘贴行为都通过该指定窗口进行管控,便可以对所有复制行为和粘贴行为进行审计和拦截。
当然,该应用环境中还可能包括输入端(例如用于针对所述窗口中的数据内容输入复制操作或粘贴操作)等软硬件设备,在此不做赘述。
实施例一
如图2所示,为本申请第一实施例提出的一种窗口操作行为审计方法的流程示意图。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。下面以所述服务端4作为执行主体对该方法进行说明。
该方法包括以下步骤:
S200,创建一个指定窗口。
在使用X11服务作为桌面显示服务器的系统中,可以利用X11的Selection等事件对系统中所有的复制/粘贴行为做感知和控制,具体实现方式是在后台创建一个指定窗口,然后始终将所述指定窗口注册为剪切板所有者,之后所有复制和粘贴行为都会向所述指定窗口请求,在这里便可以达到对复制和粘贴行为的审计。所述指定窗口为基于X11服务在后台创建的不可见窗口。
S202,将所述指定窗口设置为剪切板所有者。
具体而言,进一步参阅图3,为上述步骤S202的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S202具体包括:
S2020,获取当前的剪切板所有者第一窗口。
具体地,可以调用XGetSelectionOwner函数获取当前的SelectionOwner(剪切板所有者),得到所述第一窗口。
S2022,获取所述第一窗口对应的第一剪切板内容。
具体地,可以通过调用XConvertSelection接口获取当前剪切板内容,得到所述第一剪切板内容,然后将所述第一剪切板内容缓存。
S2024,将所述指定窗口设置为所述剪切板所有者。
具体地,可以调用XSetSelectionOwner函数将本窗口(所述指定窗口)设置为X11的SelectionOwner。
S2026,根据所述第一剪切板内容更新所述指定窗口的剪切板内容。
也就是说,将所述指定窗口对应的剪切板内容更新为所述第一剪切板内容。因此,所述指定窗口的剪切板内容与所述第一剪切板内容一致,后续需要复制粘贴时使用所述指定窗口的剪切板内容,不会再影响所述第一剪切板内容。
回到图2,S204,当所述指定窗口作为所述剪切板所有者接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为。
在本实施例中,所述窗口操作行为主要包括复制行为、粘贴行为。
具体而言,进一步参阅图4,为上述步骤S204的细化流程示意图。可以理解,该流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。在本实施例中,所述步骤S204具体包括:
S2040,当采用所述指定窗口作为所述剪切板所有者接收到新事件时,判断所述新事件是否为复制行为事件。当所述新事件为复制行为事件时,执行步骤S2042-S2044。当所述新事件不是复制行为事件时,执行步骤S2046。
当所述指定窗口被设置为所述剪切板所有者之后,页面发生的新事件将发送请求至所述指定窗口。所述指定窗口接收每个新事件,等待复制行为事件或粘贴行为事件的发生。
当发生复制行为时,发生所述复制行为的窗口(第二窗口)发出SelectionClear事件,以将所述SelectionOwner从所述指定窗口切换为所述第二窗口。所述指定窗口将收到SelectionClear事件,而且将不再是SelectionOwner。因此,当所述指定窗口收到SelectionClear事件时,判断收到复制行为事件。
S2042,获取作为新的剪切板所有者的第二窗口。
由于在发生复制行为后,所述指定窗口不再是SelectionOwner,而是由发生该复制行为的窗口(第二窗口)成为当前的SelectionOwner。此时再次调用XGetSelectionOwner函数获取当前的SelectionOwner,得到所述第二窗口。
S2044,根据预设的第一业务逻辑判断所述第二窗口是否允许复制行为。
所述第一业务逻辑可以根据实际应用场景进行自定义配置。例如,当所述第二窗口匹配的标题栏涉及预设的涉密关键词时,判断所述第二窗口不允许复制行为。又例如,当所述第二窗口为打开的一个预先标记的涉密文件时,判断所述第二窗口不允许复制行为。
S2046,判断所述新事件是否为粘贴行为事件。当所述新事件为粘贴行为事件时,执行步骤S2048。当所述新事件不是粘贴行为事件时,流程结束。
当发生粘贴行为时,作为当前SelectionOwner的所述指定窗口将收到SelectionRequest事件。因此,当所述指定窗口收到SelectionRequest事件时,判断收到粘贴行为事件。
S2048,根据预设的第二业务逻辑判断所述第二窗口是否允许粘贴行为。
同样地,所述第二业务逻辑与所述第一业务逻辑类似,也可以根据实际应用场景进行自定义配置。例如,当所述第二窗口匹配的标题栏涉及预设的涉密关键词时,判断所述第二窗口不允许粘贴行为。又例如,当所述第二窗口为打开的一个预先标记的涉密文件时,判断所述第二窗口不允许粘贴行为。
回到图2,S206,当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为。
具体而言,进一步参阅图5,为上述步骤S206的第一细化流程示意图。在图5中,所述步骤S206具体包括:
S2060,当所述第二窗口允许复制行为时,获取所述第二窗口对应的第二剪切板内容。
若根据所述第一业务逻辑判断出所述第二窗口允许复制行为,则所述指定窗口通过调用XConvertSelection接口获取所述第二窗口(当前的SelectionOwner)对应的第二剪切板内容。一般情况下,所述第二剪切板内容为用户在所述第二窗口中选择的需要复制的内容。若判断出所述第二窗口不允许复制行为,则拒绝本次请求(拦截所述复制行为)。
S2062,将所述指定窗口重新设置为所述剪切板所有者。
由于此时所述指定窗口已不是SelectionOwner,因此需要再次调用XSetSelectionOwner函数将所述指定窗口设置为SelectionOwner,以确保后续各种行为继续发送请求至所述指定窗口,实现对后续行为的管控。
S2064,根据所述第二剪切板内容更新所述指定窗口的剪切板内容。
也就是说,将所述指定窗口对应的剪切板内容更新为所述第二剪切板内容。因此,所述指定窗口的剪切板内容与所述第二剪切板内容一致,后续发生粘贴行为时会使用所述指定窗口的剪切板内容,不会再影响所述第二剪切板内容。并且,当后续发生的复制行为或粘贴行为被判断为不允许而需要清空剪切板内容时,也仅会清空所述指定窗口的剪切板内容,避免所述第二剪切板中之前的内容丢失。
进一步参阅图6,为上述步骤S206的第二细化流程示意图。在图6中,所述步骤S206具体包括:
S2066,当所述第二窗口允许粘贴行为时,将所述指定窗口的剪切板内容传送至粘贴区域。
若根据所述第二业务逻辑判断出所述第二窗口允许粘贴行为,则直接使用所述指定窗口的剪切板内容,将所述指定窗口的剪切板内容传送至粘贴区域,以执行对该内容的粘贴操作,不需要再使用所述第二剪切板内容。若判断出所述第二窗口不允许粘贴行为,则拒绝本次请求(拦截所述粘贴行为)。
本实施例提出的窗口操作行为审计方法,可以通过基于X11服务创建一个指定窗口,将所述指定窗口始终设置为X11的剪切板所有者,使得所有复制行为和粘贴行为都需要通过所述指定窗口管控,从而实现对所述复制行为和粘贴行为的审计,有效提高了感知所述复制行为和粘贴行为的准确性以及审计效率。并且通过将当前窗口的剪切板内容复制到所述指定窗口剪切板的方式,可以基于所述指定窗口的剪切板内容来执行所述复制行为和粘贴行为,避免所述复制行为和粘贴行为的审计结果影响所述当前窗口的剪切板内容,以免内容丢失。
实施例二
如图7所示,为本申请第二实施例提出的一种窗口操作行为审计方法的流程图。在第二实施例中,所述窗口操作行为审计方法在上述第一实施例的基础上,还包括步骤S308。可以理解,本方法实施例中的流程图不用于对执行步骤的顺序进行限定。根据需要,还可以对该流程图中的部分步骤进行添加或删减。
该方法包括以下步骤:
S300,创建一个指定窗口。
在使用X11服务作为桌面显示服务器的系统中,可以利用X11的Selection等事件对系统中所有的复制/粘贴行为做感知和控制,具体实现方式是在后台创建一个指定窗口,然后始终将所述指定窗口注册为剪切板所有者,之后所有复制和粘贴行为都会向所述指定窗口请求,在这里便可以达到对复制和粘贴行为的审计。所述指定窗口为基于X11服务在后台创建的不可见窗口。
S302,将所述指定窗口设置为剪切板所有者。
具体地,可以调用XGetSelectionOwner函数获取当前的SelectionOwner,得到第一窗口。然后通过调用XConvertSelection接口获取当前剪切板内容,得到所述第一窗口对应的第一剪切板内容,将所述第一剪切板内容缓存。再调用XSetSelectionOwner函数将所述指定窗口设置为SelectionOwner,并将所述指定窗口对应的剪切板内容更新为所述第一剪切板内容。
S304,当所述指定窗口作为所述剪切板所有者接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为。
在本实施例中,所述窗口操作行为主要包括复制行为、粘贴行为。
当所述指定窗口被设置为所述剪切板所有者之后,页面发生的新事件将发送请求至所述指定窗口。所述指定窗口接收每个新事件,等待复制行为事件或粘贴行为事件的发生。
当发生复制行为时,发生所述复制行为的窗口(第二窗口)发出SelectionClear事件,以将所述SelectionOwner从所述指定窗口切换为所述第二窗口。所述指定窗口将收到SelectionClear事件,而且将不再是SelectionOwner。因此,当所述指定窗口收到SelectionClear事件时,判断收到复制行为事件。
由于在发生复制行为后,所述指定窗口不再是SelectionOwner,而是由发生该复制行为的窗口(第二窗口)成为当前的SelectionOwner。此时再次调用XGetSelectionOwner函数获取当前的SelectionOwner,得到所述第二窗口。然后根据预设的第一业务逻辑判断所述第二窗口是否允许复制行为。所述第一业务逻辑可以根据实际应用场景进行自定义配置。
当发生粘贴行为时,作为当前SelectionOwner的所述指定窗口将收到SelectionRequest事件。因此,当所述指定窗口收到SelectionRequest事件时,判断收到粘贴行为事件。然后根据预设的第二业务逻辑判断所述第二窗口是否允许粘贴行为。同样地,所述第二业务逻辑也可以根据实际应用场景进行自定义配置。
S306,当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为。
若根据所述第一业务逻辑判断出所述第二窗口允许复制行为,则所述指定窗口通过调用XConvertSelection接口获取所述第二窗口(当前的SelectionOwner)对应的第二剪切板内容。一般情况下,所述第二剪切板内容为用户在所述第二窗口中选择的需要复制的内容。
由于此时所述指定窗口已不是SelectionOwner,因此需要再次调用XSetSelectionOwner函数将所述指定窗口设置为SelectionOwner,以确保后续各种行为继续发送请求至所述指定窗口,实现对后续行为的管控。然后将所述指定窗口对应的剪切板内容更新为所述第二剪切板内容。
若判断出所述第二窗口不允许复制行为,则拒绝本次请求(拦截所述复制行为)。
若根据所述第二业务逻辑判断出所述第二窗口允许粘贴行为,则直接使用所述指定窗口的剪切板内容,将所述指定窗口的剪切板内容传送至粘贴区域,以执行对该内容的粘贴操作,不需要再使用所述第二剪切板内容。若判断出所述第二窗口不允许粘贴行为,则拒绝本次请求(拦截所述粘贴行为)。
S308,记录对所述复制行为或所述粘贴行为的审计结果。
当发生复制行为或粘贴行为后,所述指定窗口通过上述过程对所述复制行为或所述粘贴行为进行了审计,审计结果可以是允许或者拦截。将所述审计结果记录下来形成审计日志,可以方便后期溯源。
本实施例提出的窗口操作行为审计方法,可以通过基于X11服务创建一个指定窗口,将所述指定窗口始终设置为X11的剪切板所有者,使得所有复制行为和粘贴行为都需要通过所述指定窗口管控,从而实现对所述复制行为和粘贴行为的审计,有效提高了感知所述复制行为和粘贴行为的准确性以及审计效率。并且通过将当前窗口的剪切板内容复制到所述指定窗口剪切板的方式,可以基于所述指定窗口的剪切板内容来执行所述复制行为和粘贴行为,避免所述复制行为和粘贴行为的审计结果影响所述当前窗口的剪切板内容,以免内容丢失。另外,及时记录对所述复制行为或所述粘贴行为的审计结果,形成审计日志,可以方便后期溯源。
实施例三
如图8所示,为本申请第三实施例提出一种电子装置20的硬件架构示意图。本实施例中,所述电子装置20可包括,但不仅限于,可通过系统总线相互通信连接的存储器21、处理器22、网络接口23。需要指出的是,图8仅示出了具有组件21-23的电子装置20,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。在本实施例中,所述电子装置20可以是所述服务端4。
所述存储器21至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器21可以是所述电子装置20的内部存储单元,例如该电子装置20的硬盘或内存。在另一些实施例中,所述存储器21也可以是所述电子装置20的外部存储设备,例如该电子装置20上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,所述存储器21还可以既包括所述电子装置20的内部存储单元也包括其外部存储设备。本实施例中,所述存储器21通常用于存储安装于所述电子装置20的操作系统和各类应用软件,例如窗口操作行为审计系统60的程序代码等。此外,所述存储器21还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器22在一些实施例中可以是CPU、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器22通常用于控制所述电子装置20的总体操作。本实施例中,所述处理器22用于运行所述存储器21中存储的程序代码或者处理数据,例如运行所述窗口操作行为审计系统60等。
所述网络接口23可包括无线网络接口或有线网络接口,该网络接口23通常用于在所述电子装置20与其他电子设备之间建立通信连接。
实施例四
如图9所示,为本申请第四实施例提出一种窗口操作行为审计系统60的模块示意图。所述窗口操作行为审计系统60可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例各程序模块的功能。
在本实施例中,所述窗口操作行为审计系统60包括:
创建模块600,用于创建一个指定窗口。
在使用X11服务作为桌面显示服务器的系统中,可以利用X11的Selection等事件对系统中所有的复制/粘贴行为做感知和控制,具体实现方式是在后台创建一个指定窗口,然后始终将所述指定窗口注册为剪切板所有者,之后所有复制和粘贴行为都会向所述指定窗口请求,在这里便可以达到对复制和粘贴行为的审计。所述指定窗口为基于X11服务在后台创建的不可见窗口。
设置模块602,用于将所述指定窗口设置为剪切板所有者。
具体地,可以调用XGetSelectionOwner函数获取当前的SelectionOwner,得到第一窗口。然后通过调用XConvertSelection接口获取当前剪切板内容,得到所述第一窗口对应的第一剪切板内容,将所述第一剪切板内容缓存。再调用XSetSelectionOwner函数将所述指定窗口设置为SelectionOwner,并将所述指定窗口对应的剪切板内容更新为所述第一剪切板内容。
判断模块604,用于当所述指定窗口作为所述剪切板所有者接收到窗口操作行为事件时,判断对应窗口是否允许所述窗口操作行为。
在本实施例中,所述窗口操作行为主要包括复制行为、粘贴行为。
当所述指定窗口被设置为所述剪切板所有者之后,页面发生的新事件将发送请求至所述指定窗口。所述指定窗口接收每个新事件,等待复制行为事件或粘贴行为事件的发生。
当发生复制行为时,发生所述复制行为的窗口(第二窗口)发出SelectionClear事件,以将所述SelectionOwner从所述指定窗口切换为所述第二窗口。所述指定窗口将收到SelectionClear事件,而且将不再是SelectionOwner。因此,当所述指定窗口收到SelectionClear事件时,判断收到复制行为事件。
由于在发生复制行为后,所述指定窗口不再是SelectionOwner,而是由发生该复制行为的窗口(第二窗口)成为当前的SelectionOwner。此时再次调用XGetSelectionOwner函数获取当前的SelectionOwner,得到所述第二窗口。然后根据预设的第一业务逻辑判断所述第二窗口是否允许复制行为。所述第一业务逻辑可以根据实际应用场景进行自定义配置。
当发生粘贴行为时,作为当前SelectionOwner的所述指定窗口将收到SelectionRequest事件。因此,当所述指定窗口收到SelectionRequest事件时,判断收到粘贴行为事件。然后根据预设的第二业务逻辑判断所述第二窗口是否允许粘贴行为。同样地,所述第二业务逻辑也可以根据实际应用场景进行自定义配置。
执行模块606,用于当所述对应窗口允许所述窗口操作行为时,基于所述指定窗口的剪切板内容执行所述窗口操作行为。
若根据所述第一业务逻辑判断出所述第二窗口允许复制行为,则所述指定窗口通过调用XConvertSelection接口获取所述第二窗口(当前的SelectionOwner)对应的第二剪切板内容。一般情况下,所述第二剪切板内容为用户在所述第二窗口中选择的需要复制的内容。
由于此时所述指定窗口已不是SelectionOwner,因此需要再次调用XSetSelectionOwner函数将所述指定窗口设置为SelectionOwner,以确保后续各种行为继续发送请求至所述指定窗口,实现对后续行为的管控。然后将所述指定窗口对应的剪切板内容更新为所述第二剪切板内容。
若判断出所述第二窗口不允许复制行为,则拒绝本次请求(拦截所述复制行为)。
若根据所述第二业务逻辑判断出所述第二窗口允许粘贴行为,则直接使用所述指定窗口的剪切板内容,将所述指定窗口的剪切板内容传送至粘贴区域,以执行对该内容的粘贴操作,不需要再使用所述第二剪切板内容。若判断出所述第二窗口不允许粘贴行为,则拒绝本次请求(拦截所述粘贴行为)。
本实施例提出的窗口操作行为审计系统,可以通过基于X11服务创建一个指定窗口,将所述指定窗口始终设置为X11的剪切板所有者,使得所有复制行为和粘贴行为都需要通过所述指定窗口管控,从而实现对所述复制行为和粘贴行为的审计,有效提高了感知所述复制行为和粘贴行为的准确性以及审计效率。并且通过将当前窗口的剪切板内容复制到所述指定窗口剪切板的方式,可以基于所述指定窗口的剪切板内容来执行所述复制行为和粘贴行为,避免所述复制行为和粘贴行为的审计结果影响所述当前窗口的剪切板内容,以免内容丢失。
实施例五
如图10所示,为本申请第五实施例提出一种窗口操作行为审计系统60的模块示意图。在本实施例中,所述窗口操作行为审计系统60除了包括第四实施例中的所述创建模块600、设置模块602、判断模块604、执行模块606之外,还包括记录模块608。
所述记录模块608,用于记录对所述复制行为或所述粘贴行为的审计结果。
当发生复制行为或粘贴行为后,所述指定窗口通过上述过程对所述复制行为或所述粘贴行为进行了审计,审计结果可以是允许或者拦截。将所述审计结果记录下来形成审计日志,可以方便后期溯源。
实施例六
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有窗口操作行为审计程序,所述窗口操作行为审计程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的窗口操作行为审计方法的步骤。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请实施例的优选实施例,并非因此限制本申请实施例的专利范围,凡是利用本申请实施例说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请实施例的专利保护范围内。