WO2016086765A1 - 浏览器防注入方法、浏览器客户端和装置 - Google Patents

浏览器防注入方法、浏览器客户端和装置 Download PDF

Info

Publication number
WO2016086765A1
WO2016086765A1 PCT/CN2015/094843 CN2015094843W WO2016086765A1 WO 2016086765 A1 WO2016086765 A1 WO 2016086765A1 CN 2015094843 W CN2015094843 W CN 2015094843W WO 2016086765 A1 WO2016086765 A1 WO 2016086765A1
Authority
WO
WIPO (PCT)
Prior art keywords
window message
browser
operating system
window
request
Prior art date
Application number
PCT/CN2015/094843
Other languages
English (en)
French (fr)
Inventor
党壮
梁志辉
王天平
Original Assignee
北京奇虎科技有限公司
奇智软件(北京)有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 北京奇虎科技有限公司, 奇智软件(北京)有限公司 filed Critical 北京奇虎科技有限公司
Publication of WO2016086765A1 publication Critical patent/WO2016086765A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Definitions

  • the present invention relates to the field of browser technologies, and in particular, to a browser anti-injection method, a browser client, and a device with a browser client.
  • a browser is a piece of software that can display the contents of an HTML (HyperText Mark-up Language) file of a web server or file system and allow users to interact with these files.
  • the web browser mainly interacts with the web server through the HTTP protocol and acquires web pages. These web pages are specified by a URL (Uniform Resource Locator), and the file format is usually HTML.
  • the network request is redirected to the unsafe webpage, and the favorites are automatically and repeatedly added to the unsafe website.
  • the IE tab there are items that cannot be changed or hidden, the login name and password in the web page, etc., so the dynamic link library injected by these programs is not safe for the user's browser.
  • the present invention has been made in order to provide a browser client and corresponding browser anti-injection method that overcomes the above problems or at least partially solves the above problems.
  • a browser anti-injection method including:
  • window message is a window message that hijacks the browser, then the transmission of the window message is stopped.
  • a browser client including:
  • a kernel component configured to process the received window message
  • Anti-injection components including:
  • a global hook loading module configured to load a window message hook function for intercepting a window message
  • a window message intercepting module configured to intercept the window message in the operating system by using the window message hook function
  • a window message judging module configured to determine whether the window message is a window message of a hijacking browser
  • a window message stop module configured to: if the window message is a window message that hijacks a browser, Then stopping the transmission of the window message to the kernel component.
  • an apparatus with a browser client comprising:
  • processor and a memory loaded with a plurality of executable instructions, the plurality of instructions including a method of performing the following steps:
  • window message is a window message that hijacks the browser, then the transmission of the window message is stopped.
  • a computer program comprising computer readable code, when the computer readable code is run on a terminal device, causing the terminal device to perform any of the browsers described above method.
  • a computer readable medium storing a computer program for performing any of the browser anti-injection methods described above.
  • the window message in the operating system is intercepted, and it is determined whether the window message is a window message for hijacking the browser, such as whether to inject a dll into the browser.
  • a dll a window message for hijacking the browser.
  • Dynamic Link Library if it is, the process of stopping the sending of the window message to the browser, thereby solving the problem that other applications injecting dll into the browser and causing the browser to be insecure, which can be prevented.
  • Other applications inject unsafe dlls into the browser to hijack the browser, thereby increasing the security of the browser.
  • FIG. 1 is a flow chart showing a method for browser anti-injection according to an embodiment of the present invention
  • FIG. 2 is a schematic flow chart of a method for browser anti-injection according to an embodiment of the present invention
  • FIG. 3 is a schematic flowchart diagram of a browser anti-injection method according to an embodiment of the present invention.
  • FIG. 4 is a flow chart showing a method for preventing injection of a browser according to an embodiment of the present invention
  • FIG. 5 is a schematic flowchart diagram of a method for browser anti-injection according to an embodiment of the present invention
  • FIG. 6 is a schematic flow chart of a method for browser anti-injection according to an embodiment of the present invention.
  • FIG. 7 is a schematic flowchart diagram of a method for browser anti-injection according to an embodiment of the present invention.
  • FIG. 8 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 9 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 11 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 12 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 13 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 14 is a schematic structural diagram of a browser client according to an embodiment of the present invention.
  • FIG. 15 is a block diagram showing the structure of a device with a browser client according to an embodiment of the present invention.
  • Figure 16 shows a block diagram of a terminal device for performing the method according to the invention
  • Figure 17 shows a memory unit for holding or carrying program code implementing the method according to the invention.
  • FIG. 1 it is a schematic flowchart of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 110 Load a window message hook function for intercepting the window message
  • the CBT hook function WH_CBT is loaded, and the window message of the WH_CBT hook function when the windows window is activated, created, released (closed), minimized, maximized, or changed, can be intercepted by the WH_CBT.
  • the present invention can then load the above CBT hook function.
  • the loading of the window message hook function for intercepting the window message comprises:
  • Sub-step 112 calling a dynamic link library load function to load the dynamic link library in which the window message hook function is located to load the window message hook function.
  • WH_CBT needs to be installed through the SetWindowsHookEx function.
  • the function prototype is: SetWindowsHookEx(
  • HOOKPROC lpfn is a pointer to the / hook procedure, that is, the preprocessing process after intercepting the specified system message, which must be defined in the DLL;
  • HINSTANCE hMod the handle of the application instance, which can be the DLL where the CBT hook is located;
  • HINSTANCE hMod this parameter is set to 0, indicating that this hook is a global hook for all threads of the monitoring system.
  • the DLL of the CBT hook can be loaded by the dynamic link library loading function LoadLibrary, and the execution logic of the CBT hook is also loaded.
  • the prototype of the LoadLibrary function is as follows:
  • the DLL where the CBT hook function is located is loaded, so that the CBT hook function is loaded and the processing logic after the hook is fetched to the window message.
  • Step 120 Blocking, by using the window message hook function, the window message in the operating system
  • an application when an application injects an unsafe dynamic link library into the browser, it controls the operating system to inject the browser through the window message, and the present invention can pass the CBT when sending the window message.
  • the hook function intercepts it.
  • Step 130 it is determined whether the window message is a window message of the hijacking browser; if the window message is a window message of the hijacking browser, proceed to step 140;
  • whether the window message of the browser is hijacked may be determined according to the window handle of the intercepted window message.
  • the determining whether the window message is a window message of a hijacking browser comprises:
  • Sub-step 131 Match the window handle name to which the window message belongs to the preset window handle list; if the window handle matches, determine that the window message is a window message of the hijacking browser.
  • an application other than the browser if an application other than the browser is to inject a dll that hijacks the browser to the browser, it needs to start a corresponding window and the like through a window message, and send an execution dll injection under the window.
  • the windows system processes the received window message, such as executing the dll installation process, writing the dll to the specified location of the browser, and writing the relevant parameters of the dll into the registry key associated with the browser.
  • Each window has a window handle, so the present invention can pre-register the window handle initiated by the application that injects the dll that does not meet the security requirement to the browser, and generate a blacklist of the window handle.
  • the present invention can directly obtain the window handle to which it belongs by using the window message, and match it with the window handle in the blacklist. If it matches, the window message is determined to be a hijacking browser.
  • the window message that is, whether the window message is a window message of the hijacking browser can be determined by the matching result of the window handle.
  • the preset window handle list of the present invention can be continuously updated according to the analysis of the application, and can be updated to the client through the cloud server.
  • Step 140 stopping transmission of the window message.
  • the subsequent transmission process of the message can be stopped, and the subsequent processing is not allowed. For example, the window message is deleted.
  • a pop-up box may also be generated, prompting the user to have an application inject an unsafe dll into the browser, waiting for the user to select whether to run the window message to continue the transmission, if the user selects If the transmission continues, the interception is aborted, and if the user chooses not to continue the transmission, the transmission of the window message may be stopped.
  • the embodiment of the present invention can intercept an application that wants to inject a DLL into a browser, when it creates a window, or sends a window message under the window where it is located, that is, before the application executes a specific dll injection process. Intercepting, and then judging the window message, when judging that it is a message hijacking the browser according to the window message, stopping the transmission of the window message, preventing the subsequent operation, and directly preventing the application from injecting into the browser Secure dll, which protects the security of the browser.
  • FIG. 2 it is a schematic flowchart of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 210 Load a window message hook function for intercepting a window message
  • Step 220 intercepting, by using the window message hook function, the window message in the operating system
  • Step 230 the window handle name to which the window message belongs is matched with the preset window handle list; if the window handle matches, then proceeds to step 240;
  • the window message is released.
  • Step 240 Acquire a verification signature of an application to which the window handle belongs
  • Step 250 verifying the verification signature; if the verification fails, determining that the window message is a window message of the hijacking browser, proceeds to step 260;
  • the window message is released.
  • the window message may also obtain the verification signature of the application to which the window handle belongs, such as third-party security.
  • the verification signature of the platform is then matched with the pre-recorded verification signature. If the matching is performed, the dll of the application installed by the window handle is safe and can be allowed to be installed. If the verification fails, the The window handle of the application installed dll is not secure and refuses to install it.
  • the verification signature can also be updated by the cloud server.
  • Step 260 stopping the transmission of the window message.
  • the embodiment of the present invention can intercept an application that wants to inject a DLL into a browser, when it creates a window, or sends a window message under the window where it is located, that is, before the application executes a specific dll injection process. Intercepting, and then making multiple judgments on the window message, so that the interception range of the window message can be flexibly configured, allowing the secure application to inject the dll into the browser, and not allowing the unsafe application to inject the dll into the browser, and also protect The security of the browser.
  • FIG. 3 it is a schematic flowchart of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 310 Load a window message hook function for intercepting the window message
  • Step 320 intercepting, by using the window message hook function, a window message for creating a window in an operating system
  • the window message for creating the window may be intercepted, and the window message of the application that injects the unsafe dll into the browser may be determined.
  • the window message for creating a window in the operating system is intercepted by the window message hook function, including:
  • Sub-step 321 is performed by the window message hook function for the WM_CREATE message of the creation window in the operating system.
  • WM_CREATE is a window message in windows that is sent when an application requests a window creation via the CreateWindowEx function or the CreateWindow function.
  • the WM_CREATE message is also sent when the application creates an installation window that injects the dll into the browser. Then, the present invention can intercept the WM_CREATE message of the installation window created by the application through the CBT hook.
  • Step 330 it is determined whether the window message is a window message of the hijacking browser; if the window message is a window message of the hijacking browser, proceed to step 340;
  • the window message is released.
  • the window handle and preset of the window can be created by using the WM_CREATE message.
  • the list of window handles is matched, and if it matches, it is determined whether the window message is a window message for hijacking the browser.
  • the verification signature of the application to which the WM_CREATE message belongs may also be obtained, and the verification signature is verified. If the verification fails, it is determined whether the window message is a window message of the hijacking browser.
  • Step 340 stopping the transmission of the window message.
  • only the window message for creating the window may be intercepted.
  • the creation of the corresponding window may be stopped, thereby avoiding the application. Inject the unsafe dll into the browser.
  • the scope of the interception is reduced, and excessive system resources are avoided.
  • FIG. 4 it is a schematic flowchart of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 410 The browser sends a load request to the first operating system service in the current operating system, so that the first operating system service loads a window message hook function for intercepting the window message by calling a virtual device level driver.
  • the browser itself has a lower privilege level, and can directly send a load request to the first operating system service in the current operating system, so that the first operating system service is loaded by calling a virtual device-level driver.
  • Window message hook function for intercepting window messages.
  • the device level driver calls LoadLibrary to load the CBT hook function.
  • Step 420 Perform interception by using the window message hook function for the window message in the operating system.
  • Step 430 it is determined whether the window message is a window message of the hijacking browser; if the window message is a window message of the hijacking browser, proceed to step 440;
  • Step 440 stopping the transmission of the window message.
  • the method further comprises:
  • Sub-step 400 the browser acquires an installation file of the first operating system service and performs installation to obtain the first operating system service in the current operating system.
  • the global hook function is directly loaded. Since the browser is a user-level privilege, its privilege level is low, which may exceed the setting of the system or the anti-virus software for the privilege and cannot perform the above loading. Therefore, you need to increase the permissions of the conversion in the form of a service.
  • the browser can obtain the installation file of the first operating system service in advance and install it, and after restarting, the service can be started randomly.
  • the service has a relatively high level of privilege in the operating system, which can perform the above operations with less restriction.
  • the embodiment of the present invention may also determine whether the first operating system service is installed during execution.
  • the browser obtains an installation file of the first operating system service and performs installation to obtain the first operating system service in the current operating system, including:
  • Sub-step 411 determining whether the first operating system service exists; if the first operating system service does not exist, acquiring an installation file of the first operating system service and installing, to obtain the first in the current operating system An operating system service.
  • the first operating system service is also a process, and after the startup, it has the process name and other information, then the browser can query whether the process name of the first operating system service is currently in the process currently started in the operating system, and if so, the installation has been completed. The first operating system service is passed, and vice versa, the first operating system service has not been installed.
  • the browser obtains an installation file of the first operating system service and performs installation to obtain the first operating system service in the current operating system, including:
  • Sub-step 412 Obtain an installation file of the first operating system service, and install the dynamic link library of the first operating system service and the virtual device-level driver by using the installation file of the first operating system service;
  • the installation file of the first operating system service also includes a virtual device level driver, which can be installed together during installation.
  • the virtual device level driver is not invoked by the logic in its dll when the first operating system service is not in use.
  • Virtual device-level drivers are kernel-level programs that have the highest privilege of the operating system, so replacement of source nodes can be performed more easily with virtual device-level drivers.
  • Sub-step 413 starting an application where the first operating system service is located to load a dynamic link library of the first operating system service; the first operating system service invokes the virtual device-level driver by using the dynamic link library .
  • a dll file is generated in the system file, and the relevant parameters of the dll are written into the registry of the operating system service.
  • the virtual device-level driver sys file is installed to the operating system, and the relevant parameters of the sys file are written into the registry. After the operating system starts, it will start the exe file of the first operating system service and wait for the notification of the browser process.
  • the first operating system service loads a window message hook function for intercepting a window message by calling a virtual device level driver, including:
  • Sub-step 414 the first operating system service receives the loading request, and the I/O request packet is sent to the virtual device-level driver according to the loading request;
  • the first operating system service is started when the system is started, and is always running, and the listener receives the request sent by the browser. If the loading request sent by the browser is received, the loading is performed according to the loading. Requesting to create an I/O Request Packet (IRP) to be delivered to the virtual Device level driver. Because the Windows operating system transfers instructions from the application layer to the underlying driver through the I/O request packet.
  • the first operating system service invokes the virtual device-level driver in the embodiment of the present invention, and the target needs to construct the IRP with the device-level driver as the target, and then delivers the IRP to the device-level driver.
  • the IRP includes information that controls the device level driver to load a CBT hook function, such as the path of the dll where the CBT hook function is located.
  • Sub-step 415 after receiving the I/O request packet, the virtual device-level driver invokes a dynamic link library load function to load a window message hook function for intercepting a window message.
  • the virtual device level determining program After receiving the I/O request packet delivered by the first operating system service, the virtual device level determining program parses the instruction in the I/O request packet to obtain the information of the dll where the CBT hook function is located, then The dynamic link library load function is called to load the dynamic link library in which the window message hook function is located to load the window message hook function.
  • the first operating system service may be installed as a part of the browser when the browser is installed, as a functional module of the browser.
  • only the window message for creating the window may be intercepted.
  • the creation of the corresponding window may be stopped, thereby avoiding the application. Inject the unsafe dll into the browser.
  • the scope of the interception is reduced, and excessive system resources are avoided, and the CBT loading is performed with kernel-level permissions, thereby avoiding the operating system's permission to load. The load failed due to the limit.
  • FIG. 5 it is a schematic flowchart of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 510 The browser sends a loading request to the second application independent of the browser through the preset interface.
  • Step 520 the browser-independent second application sends the loading request to a first operating system service in a current operating system, so that the first operating system service is invoked by calling a virtual device-level driver.
  • the browser itself does not have the function of setting the first operating system service
  • the second application independent of the browser has the function of setting the first operating system service, such as 360 security guard, 360 network shield and the like.
  • the browser can send a load request to the independent second application through the preset external interface, where the load request includes the dll information of the CBT hook function.
  • the second application independent of the browser sends the load request to the first operating system service in the current operating system, so that the first operating system service loads the dll of the CBT hook by calling a virtual device level driver.
  • Step 530 Perform interception by using the window message hook function for the window message in the operating system.
  • Step 540 it is determined whether the window message is a window message of the hijacking browser; if the window message is a window message of the hijacking browser, proceed to step 550;
  • Step 550 stopping transmission of the window message.
  • the process of the present invention for the first operating system service and the virtual device level driver is similar to that of the fourth embodiment.
  • only the window message for creating the window may be intercepted.
  • the creation of the corresponding window may be stopped, thereby avoiding the application. Inject the unsafe dll into the browser.
  • the interface of the window is not blocked, and the other types of window messages are not intercepted, which reduces the scope of the interception and avoids occupying excessive system resources.
  • the embodiment of the present invention can utilize the permissions of the third-party application through the first operating system.
  • the service loads CBT with kernel-level permissions by calling a virtual device-level driver, which avoids the operating system's permission to load and fails to load.
  • FIG. 6 it is a schematic flowchart of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 610 The browser sends a loading request to the first operating system service in the current operating system.
  • Step 620 after the first operating system service receives the loading request, the first operating system service determines whether the sender of the loading request is a specified browser; if the sender of the loading request is not a specified browser, If the sender of the load request is the specified browser, the I/O request packet is sent to the virtual device level driver according to the load request, and the process proceeds to step 630.
  • the browsing may be set in the first operating system service. Blacklist of devices. Then, the identity information of the sender of the loading request is obtained, and the blacklist of the browser recorded in the first operating system service is matched. If the matching is not matched, the anti-injection process is not entered; if the matching is performed, the loading request is obtained according to the loading request. An I/O request packet is created and delivered to the virtual device level driver.
  • the loading request includes identity verification information of the browser; the identity verification information, such as a browser name, or a signature information of a browser, may of course be other unique authentication information.
  • the determining, by the first operating system service, whether the sender of the loading request is a specified browser includes:
  • Sub-step 621 parsing the authentication information in the loading request, and matching the authentication information with the pre-stored authentication information; if the matching is performed, determining that the sender of the loading request is the designated browser.
  • the browser name is matched with the browser name recorded in the first operating system service, or the signature information of the browser is matched with the signature information of the browser recorded in the first operating system service, and if it matches, it is considered
  • the sender of the load request is a designated browser, and the device-level drive can be used to perform an anti-injection function.
  • Step 630 After receiving the I/O request packet, the virtual device level driver invokes a dynamic link library load function to load a window message hook function for intercepting a window message.
  • Step 640 for the window message in the operating system, intercepting by using the window message hook function
  • Step 650 it is determined whether the window message is a window message of the hijacking browser; if the window message is a window message of the hijacking browser, proceed to step 660;
  • Step 660 stopping the transmission of the window message.
  • FIG. 7 is a schematic flowchart diagram of a method for preventing injection of a browser according to the present invention, which may specifically include:
  • Step 710 The browser sends a loading request to the first operating system service in the current operating system.
  • Step 720 the first operating system service receives the loading request, and creates an I/O request packet and sends the I/O request packet to the virtual device-level driver according to the loading request.
  • Step 730 after the virtual device-level driver receives the I/O request packet, the virtual device-level driver determines, according to the I/O request packet, whether the sender of the loading request is a specified browsing. If the sender of the load request is not the specified browser, then does not enter the subsequent processing; if the sender of the load request is the specified browser, then proceeds to step 740;
  • the present invention in order to prevent a non-user-selected browser or a third-party cooperative browser from using the anti-injection function mentioned in the embodiment of the present invention to increase system resource consumption, it may be set in a virtual device-level driver.
  • the blacklist of the browser according to the IRP packet, the identity information of the sender of the loading request is obtained, and the blacklist of the browser recorded in the virtual device-level driver is matched. If the matching is not matched, the anti-injection process is not entered; if the matching is performed, Then, an I/O request packet is created according to the load request and sent to the virtual device level driver.
  • the loading request includes identity verification information of the browser; the identity verification information, such as a browser name, or a signature information of a browser, and of course, other unique authentication information;
  • the virtual device level driver determines the loading request according to the I/O request packet. Whether the sender of the request is a specified browser includes:
  • the virtual device-level driver receives an I/O request packet sent by the first operating system service; the I/O request includes identity verification information of the browser;
  • the browser sends a registry path setting request to the first operating system service, and the first operating system service sets the registry location information of the non-accessible node and the virtual corresponding to the node that is not allowed to access the node based on the registry path setting request.
  • the path of the node, as well as the browser's authentication information, is re-encapsulated as an IRP, and the IRP is sent to the device-level driver.
  • Sub-step 732 parsing the authentication information in the I/O request packet, and matching the authentication information with the pre-stored authentication information; if the matching is performed, determining that the sender of the loading request is the specified browsing Device.
  • the device-level driver When the device-level driver receives the I/O request packet sent by the first operating system service, it resolves the registry location information of the non-accessible node included therein and the path corresponding to the virtual node that should not allow access to the node, and The browser's authentication information will then match the authentication information with the pre-stored authentication information; if it matches, it is determined that the sender of the registry path setting request is the designated browser.
  • Step 740 the virtual device level driver loads a window message hook function for intercepting window messages.
  • Step 750 Blocking, by using the window message hook function, the window message in the operating system
  • Step 760 it is determined whether the window message is a window message of the hijacking browser; if the window message is a window message of the hijacking browser, proceed to step 770;
  • Step 770 stopping the transmission of the window message.
  • FIG. 8 is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • a kernel component 810 configured to process the received window message
  • the anti-injection component 820 specifically includes:
  • a global hook loading module 821 configured to load a window message hook function for intercepting window messages
  • a window message intercepting module 822 configured to intercept the window message in the operating system by using the window message hook function
  • a window message judging module 823 configured to determine whether the window message is a window message of a hijacking browser
  • the window message stop module 824 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • the global hook loading module 821 includes:
  • a first loading module configured to invoke a dynamic link library load function to load a dynamic link library in which the window message hook function is located to load the window message hook function.
  • the window message determining module 823 includes:
  • a window handle determining module configured to match a window handle name to which the window message belongs to a preset window handle list; if the window handle matches, determining that the window message is a window message of a hijacking browser .
  • FIG. 9 is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • a kernel component 910 configured to process the received window message
  • the anti-injection component 920 specifically includes:
  • a global hook loading module 921 configured to load a window message hook function for intercepting window messages
  • a window message intercepting module 922 configured to intercept the window message in the operating system by using the window message hook function
  • the window message judging module 923 specifically includes:
  • the window handle determination module 9231 is configured to match the window handle name to which the window message belongs to the preset window handle list; if the window handle matches, enter the window signature acquisition module 9232;
  • a window signature obtaining module 9232 configured to acquire a verification signature of the application to which the window handle belongs after the window handle is matched;
  • a window signature verification module 9233 configured to verify the verification signature, and if the verification fails, determining that the window message is a window message of a hijacking browser;
  • the window message stop module 924 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • FIG. 10 is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • a kernel component 1010 configured to process the received window message
  • the anti-injection component 1020 specifically includes:
  • a global hook loading module 1021 configured to load a window message hook function for intercepting a window message
  • the window message intercepting module 1022 includes:
  • a window message intercepting module 10221 is configured to intercept the window message of the created window in the operating system by using the window message hook function;
  • the window message determining module 1023 is configured to determine whether the window message is a window for hijacking a browser Mouth message
  • the window message stop module 1024 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • the create window message intercepting module 10221 includes:
  • the first create window message intercepting module is configured to intercept the WM_CREATE window message for creating a window in the operating system by using the window message hook function.
  • FIG. 11 is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • a kernel component 1110 configured to process the received window message
  • the anti-injection component 1120 specifically includes:
  • the global hook loading module 1121 includes:
  • a request processing module 11211 configured to send a load request to a first operating system service in a current operating system, so that the first operating system service loads a message for intercepting a window by calling a virtual device level driver Window message hook function;
  • a window message intercepting module 1122 configured to intercept the window message in the operating system by using the window message hook function
  • the window message judging module 1123 is configured to determine whether the window message is a window message of a hijacking browser
  • the window message stop module 1124 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • the method further comprises:
  • the service installation module is configured to obtain an installation file of the first operating system service and install the browser to obtain the first operating system service in the current operating system.
  • the service installation module includes:
  • a first service installation module configured to acquire an installation file of the first operating system service, and install the dynamic link library of the first operating system service and the virtual device level by using an installation file of the first operating system service driver;
  • a service startup module configured to start an application of the first operating system service to load a dynamic link library of a first operating system service; the first operating system service invokes the virtual Device level driver.
  • the service installation module comprises:
  • a service existence judging module configured to determine whether the first operating system service exists; if the first operating system service does not exist, acquiring an installation file of the first operating system service and installing the current operating system to obtain the current The first operating system service in the operating system.
  • the request processing module comprises:
  • a request receiving module configured to receive the loading request by the first operating system service, and create an I/O request packet to be delivered to the virtual device level driver according to the loading request;
  • the driver loading module is configured to: after the virtual device level driver receives the I/O request packet, invoke a dynamic link library load function to load a window message hook function for intercepting the window message.
  • FIG. 12 it is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • a kernel component 1210 configured to process the received window message
  • the anti-injection component 1220 specifically includes:
  • the global hook loading module 1221 includes:
  • a first request sending module 12211 configured to send, by the browser, a loading request to a browser-independent second application through a preset interface; the browser-independent second application to the loading request Sending to a first operating system service in the current operating system, such that the first operating system service loads a window message hook function for intercepting window messages by invoking a virtual device level driver.
  • the window message intercepting module 1222 is configured to intercept the window message in the operating system by using the window message hook function
  • the window message determining module 1223 is configured to determine whether the window message is a window message of a hijacking browser
  • the window message stop module 1224 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • FIG. 13 is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • a kernel component 1310 configured to process the received window message
  • the anti-injection component 1320 specifically includes:
  • the global hook loading module 1321 includes:
  • the request sending module 13211 is configured to send a loading request to the first operating system service in the current operating system by the browser;
  • a service service authentication module 13212 configured to determine, before the window message hook function for intercepting a window message, the first operating system service determines whether the sender of the load request is a specified browser; if the load request If the sender of the load request is not the specified browser, the subsequent process is not entered; if the sender of the load request is the specified browser, the I/O request packet is created according to the load request. Sent to the virtual device level driver;
  • the driver loading module 13213 is configured to: after the virtual device level driver receives the I/O request packet, invoke a dynamic link library load function to load a window message hook function for intercepting the window message;
  • a window message intercepting module 1322 configured to intercept the window message in the operating system by using the window message hook function
  • the window message judging module 1323 is configured to determine whether the window message is a window message of a hijacking browser
  • the window message stop module 1324 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • the loading request includes identity verification information of the browser
  • the service identity verification module 13212 includes:
  • a service parsing verification module configured to parse the authentication information in the loading request, and match the authentication information with pre-stored authentication information; if the matching is performed, determine that the sender of the loading request is Specify the browser.
  • FIG. 14 is a schematic structural diagram of a browser client according to the present invention, which may specifically include:
  • Kernel component 1410 configured to process the received window message
  • the anti-injection component 1420 specifically includes:
  • the global hook loading module 1421 includes:
  • a request sending module 14211 configured to send, by the browser, a loading request to a second application independent of the browser through a preset interface
  • the request receiving module 14212 is configured to receive the loading request by the first operating system service, and create an I/O request packet to be sent to the virtual device level driver according to the loading request;
  • Driving the authentication module 14213 configured to determine, before the window message hook function for intercepting the window message, the virtual device level driver determines, according to the I/O request packet, whether the sender of the load request is Specifying a browser; if the sender of the load request is not a specified browser, not proceeding to subsequent processing; if the sender of the load request is a specified browser, loading a window message hook function for intercepting a window message;
  • a window message intercepting module 1422 configured to intercept the window message in the operating system by using the window message hook function
  • a window message determining module 1423 configured to determine whether the window message is a window message of a hijacking browser
  • the window message stop module 1424 is configured to stop transmitting the window message to the kernel component if the window message is a window message that hijacks the browser.
  • the loading request includes identity verification information of the browser
  • the driving identity verification module includes:
  • a driver request receiving module configured to receive, by the virtual device level driver, an I/O request packet sent by a first operating system service; the I/O request includes identity verification information of the browser;
  • Driving the parsing verification module configured to parse the authentication information in the I/O request packet, and match the authentication information with pre-stored authentication information; if the matching is performed, determine the loading request The sender is the specified browser.
  • FIG. 15 it is a schematic structural diagram of a device with a browser client according to the present invention.
  • the device 1500 with a browser client may specifically include:
  • window message is a window message that hijacks the browser, then the transmission of the window message is stopped.
  • the loading of the window message hook function for intercepting the window message comprises:
  • the dynamic link library load function is called to load the dynamic link library in which the window message hook function is located to load the window message hook function.
  • the determining whether the window message is a window message of a hijacking browser comprises:
  • the window message hook function for loading a window message is:
  • the browser sends a load request to the first operating system service in the current operating system such that the first operating system service loads a window message hook function for intercepting the window message by invoking a virtual device level driver.
  • the plurality of instructions also include the steps of performing the various methods described above.
  • modules in the devices of the embodiments can be adaptively changed and placed in one or more devices different from the embodiment.
  • the modules or units or components of the embodiments may be combined into one module or unit or component, and further they may be divided into a plurality of sub-modules or sub-units or sub-components.
  • any combination of the features disclosed in the specification, including the accompanying claims, the abstract and the drawings, and any methods so disclosed, or All processes or units of the device are combined.
  • Each feature disclosed in this specification (including the accompanying claims, the abstract and the drawings) may be replaced by alternative features that provide the same, equivalent or similar purpose.
  • the various component embodiments of the present invention may be implemented in hardware, or in a software module running on one or more processors, or in a combination thereof.
  • a microprocessor or digital signal processor may be used in practice to implement some or all of the functionality of some or all of the components of the browser anti-injection device in accordance with embodiments of the present invention.
  • the invention can also be implemented as a device or device program (e.g., a computer program and a computer program product) for performing some or all of the methods described herein.
  • a program implementing the invention may be stored on a computer readable medium or may be in the form of one or more signals. Such signals may be downloaded from an Internet website, provided on a carrier signal, or provided in any other form.
  • Figure 16 illustrates a terminal device with a browser client that can be implemented in accordance with the present invention.
  • the terminal device conventionally includes a processor 1610 and a computer program product or computer readable medium in the form of a memory 1620.
  • the memory 1620 can be, for example, a flash memory, an EEPROM (Electrically Erasable Programmable Read Only) Electronic memory such as memory), EPROM, hard disk or ROM.
  • Memory 1620 has a memory space 1630 for program code 1631 for performing any of the method steps described above.
  • storage space 1630 for program code may include various program code 1631 for implementing various steps in the above methods, respectively.
  • the program code can be read from or written to one or more computer program products.
  • Such computer program products include program code carriers such as hard disks, compact disks (CDs), memory cards or floppy disks.
  • Such a computer program product is typically a portable or fixed storage unit as described with reference to FIG.
  • the storage unit may have a storage section, a storage space, and the like arranged similarly to the storage 1620 in the terminal device of FIG.
  • the program code can be compressed, for example, in an appropriate form.
  • the storage unit includes computer readable code 1631', ie, code that can be read by, for example, a processor such as 1610, which when executed by the terminal device causes the terminal device to perform each of the methods described above step.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种浏览器防注入的方法,涉及浏览器技术领域。所述方法包括:加载用于拦截窗口消息的窗口消息钩子函数(110);针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截(120);判断所述窗口消息是否为劫持浏览器的窗口消息(130);如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输(140)。根据本发明的浏览器防注入的方法,可以通过加载全局的窗口消息钩子函数,拦截操作系统中的窗口消息,判断该窗口消息是否为劫持浏览器的窗口消息,由此解决了其他应用程序向浏览器注入动态链接库(DLL)导致浏览器不安全的问题,取得了可以防止其他应用程序向浏览器注入不安全的DLL以劫持浏览器,进而提高浏览器安全性的有益效果。

Description

浏览器防注入方法、浏览器客户端和装置 技术领域
本发明涉及浏览器技术领域,具体涉及一种浏览器防注入方法、一种浏览器客户端和带有浏览器客户端的装置。
背景技术
浏览器是指可以显示网页服务器或者文件系统的HTML(超文本标记语言,HyperText Mark-up Language))文件内容,并让用户与这些文件交互的一种软件。网页浏览器主要通过HTTP协议与网页服务器交互并获取网页,这些网页由URL(统一资源定位符,Uniform Resource Locator)指定,文件格式通常为HTML。
在浏览器使用过程中,可能有其他程序向浏览器注入一些动态链接库,以控制浏览器执行自己需要的逻辑,比如网络请求被重定向到不安全网页、收藏夹里自动反复添加不安全网站、IE选项卡中出现不能更改或被隐藏的项目、获取在网页中的登录名和密码等,因此,这些程序注入的动态链接库对于用户的浏览器来说并不安全。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的浏览器客户端和相应的浏览器防注入方法。
依据本发明的一个方面,提供了一种浏览器防注入的方法,包括:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
依据本发明的另外一个方面,提供了一种浏览器客户端,包括:
内核组件,其配置为处理接收到的窗口消息;
防注入组件,具体包括:
全局钩子加载模组,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组,其配置为如果所述窗口消息是劫持浏览器的窗口消息, 则停止所述将所述窗口消息传输至内核组件。
依据本发明的另外一个方面,提供了一种带有浏览器客户端的装置,包括:
处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
根据本发明的又一个方面,提供了一种计算机程序,其包括计算机可读代码,当所述计算机可读代码在终端设备上运行时,导致所述终端设备执行上述的任一个浏览器防注入方法。
根据本发明的再一个方面,提供了一种计算机可读介质,其中存储了执行上述的任一个浏览器防注入方法的计算机程序。
根据本发明的浏览器防注入的方法,可以通过加载全局的窗口消息钩子函数,拦截操作系统中的窗口消息,判断该窗口消息是否为劫持浏览器的窗口消息,比如是否为向浏览器注入dll(Dynamic Link Library,动态链接库),如果是,则对停止该窗口消息向浏览器的发送过程,由此解决了其他应用程序向浏览器注入dll导致浏览器不安全的问题,取得了可以防止其他应用程序向浏览器注入不安全的dll以劫持浏览器,进而提高浏览器安全性的有益效果。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图2示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图3示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图4示出了根据本发明一个实施例的本发明一种浏览器防注入的方法的流程示意图;
图5示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图6示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图7示出了根据本发明一个实施例的一种浏览器防注入的方法的流程示意图;
图8示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图9示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图10示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图11示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图12示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图13示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图14示出了根据本发明一个实施例的一种浏览器客户端的结构示意图;
图15示出了根据本发明一个实施例的一种带有浏览器客户端的装置的结构示意图;
图16示出了用于执行根据本发明的方法的终端设备的框图;
图17示出了用于保持或者携带实现根据本发明的方法的程序代码的存储单元。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤110,加载用于拦截窗口消息的窗口消息钩子函数;
在本发明实施例中加载CBT钩子函数WH_CBT,该WH_CBT钩子函数当windows窗口激活、创建、释放(关闭)、最小化、最大化或改变窗口时的窗口消息都可通过该WH_CBT进行拦截。本发明则可以加载上述CBT钩子函数。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
子步骤112,调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
WH_CBT需要通过SetWindowsHookEx函数进行安装,其函数原型为:SetWindowsHookEx(
int idHook,
HOOKPROC lpfn,
HINSTANCE hMod,
DWORD dwThreadId;
其中,int idHook=WH_CBT;
HOOKPROC lpfn为/钩子过程的指针,也即拦截到指定系统消息后的预处理过程,须定义在DLL中;
HINSTANCE hMod,应用程序实例的句柄,可以为CBT钩子所在DLL;
HINSTANCE hMod,该参数被设置为0,表示此钩子为监视系统所有线程的全局钩子。
由于上述安装逻辑需要以dll的方式实现,而对于dll的加载和运行,则可通过动态链接库加载函数LoadLibrary加载CBT钩子所在的dll,并把CBT钩子的执行逻辑也一并加载。LoadLibrary函数原型如下:
LoadLibraryA(
_in LPCSTR lpLibFileName
);
其中lpLibFileName为dll的名称。
那么通过上述方式,把CBT钩子函数所在的dll进行加载,从而即加载了CBT钩子函数以及其钩取到窗口消息后的处理逻辑。
步骤120,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
在本发明实施例中,当有应用程序向浏览器注入不安全的动态链接库时,其是通过窗口消息控制操作系统向浏览器注入,那么本发明可以在其发送窗口消息时即可通过CBT钩子函数对其进行拦截。
步骤130,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤140;
在本发明实施例中,可以根据拦截的窗口消息的窗口句柄判断其是否为劫持浏览器的窗口消息。
优选地,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
子步骤131,将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
在本发明实施例中,对于浏览器之外的其他应用程序,如果要向浏览器注入劫持浏览器的dll,其需要通过窗口消息启动相应的窗口等操作,在该窗口之下发送执行dll注入过程,windows系统则对接收到窗口消息进行处理,比如执行dll安装过程,将该dll写入浏览器指定位置,将dll的相关参数写入与浏览器相关的注册表项中。而每个窗口均有窗口句柄,那么本发明可以预先对向浏览器注入不符合安全要求的dll的应用程序启动的窗口句柄进行统计,生成窗口句柄黑名单。 那么本发明对于拦截到的窗口消息,可以直接通过所述窗口消息获取其所属的窗口句柄,将其与黑名单中的窗口句柄进行匹配,如果匹配上,则确定所述窗口消息为劫持浏览器的窗口消息,即可以通过窗口句柄的匹配结果确定所述窗口消息是否为劫持浏览器的窗口消息。
当然,本发明预置的窗口句柄名单,可以不断根据对应用程序的分析进行更新,其可以通过云服务器更新到客户端中。
步骤140,停止所述窗口消息的传输。
那么对于确定CBT钩子拦截的窗口消息为劫持浏览器的窗口消息后,即可停止该消息的后续传输过程,不让其进行后续处理。比如将所述窗口消息删除。
当然,确定所述窗口消息为劫持浏览器的窗口消息后,还可生成弹出框,提示用户有应用程序向浏览器注入不安全的dll,等待用户选择是否运行该窗口消息继续传输,如果用户选择继续传输,则放弃拦截,如果用户选择不继续传输,则可停止所述窗口消息的传输。
本发明实施例可针对想将dll注入浏览器的应用程序,在其创建窗口、或者在其所在窗口之下发送窗口消息时即对其进行拦截,即在应用程序执行具体的dll注入过程之前就进行拦截,然后对窗口消息进行判断,当根据窗口消息判断其为劫持浏览器的消息时,则停止窗口消息的传输,不让其进行后续操作,可以直接防止所述应用程序对浏览器注入不安全的dll,从而保护了浏览器的安全性。
实施例二
参照图2,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤210,加载用于拦截窗口消息的窗口消息钩子函数;
步骤220,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤230,将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则进入步骤240;
如果所述窗口句柄未匹配上,则放行所述窗口消息。
步骤240,获取所述窗口句柄所属应用程序的验证签名;
步骤250,对所述验证签名进行验证;如果验证失败,则确定所述窗口消息为劫持浏览器的窗口消息,进入步骤260;
如果验证成功,则放行所述窗口消息。
在本发明实施例中,对于窗口消息,在判断其窗口句柄在预置的窗口句柄名单之内后,还可以获取所述窗口句柄所属应用程序的验证签名,比如第三方安全 平台的验证签名,然后对该数字签名与预先记录的验证签名进行匹配,如果匹配上,则说明该窗口句柄的应用程序安装的dll安全,可以允许其进行安装,如果验证失败,则可认为该窗口句柄的应用程序安装的dll不安全,拒绝其进行安装。
当然,所述验证签名也可以通过云端服务器进行更新。
步骤260,停止所述窗口消息的传输。
本发明实施例可针对想将dll注入浏览器的应用程序,在其创建窗口、或者在其所在窗口之下发送窗口消息时即对其进行拦截,即在应用程序执行具体的dll注入过程之前就进行拦截,然后对窗口消息进行多重判断,使对窗口消息的拦截范围可以灵活的进行配置,允许安全的应用程序向浏览器注入dll,不允许不安全的应用程序向浏览器注入dll,也保护了浏览器的安全性。
实施例三
参照图3,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤310,加载用于拦截窗口消息的窗口消息钩子函数;
步骤320,针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截;
在本发明实施例中,可以理解,当一个应用程序要向浏览器注入dll时,其需要执行安装过程,而安装过程在windows系统首先需要创建一个安装用的窗口,本发明实施例则可只拦截创建窗口的窗口消息,本发明实施例则可只拦截创建窗口的窗口消息,可判断其是否为向浏览器注入不安全的dll的应用程序的窗口消息。
优选地,所述针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
子步骤321,针对操作系统中的创建窗口的WM_CREATE消息,通过所述窗口消息钩子函数进行拦截。
WM_CREATE是windows中一个窗口消息,当一个应用程序通过CreateWindowEx函数或者CreateWindow函数请求创建窗口时发送此消息。那么应用程序创建向浏览器注入dll的安装窗口时,也会发送WM_CREATE消息。那么本发明即可通过CBT钩子就可拦截到应用程序创建的所述安装窗口的WM_CREATE消息。
步骤330,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤340;
如果所述窗口消息不是劫持浏览器的窗口消息,则放行所述窗口消息。
在本发明实施例中可以通过WM_CREATE消息创建窗口的窗口句柄与预置 的窗口句柄名单进行匹配,如果匹配上,则确定窗口消息是否为劫持浏览器的窗口消息。当然,也可以获取所述WM_CREATE消息所属应用程序的验证签名,对验证签名进行验证,如果验证失败,则确定窗口消息是否为劫持浏览器的窗口消息。
步骤340,停止所述窗口消息的传输。
本发明实施例则可只拦截创建窗口的窗口消息,当其为预先记录的要向浏览器注入不安全dll的应用程序发送的创建窗口的消息,则可停止对应窗口的创建,从而避免应用程序将不安全的dll注入浏览器。并且由于只拦截创建窗口的窗口消息,不拦截其他类型的窗口消息,降低了拦截的范围,避免占用过多的系统资源。
实施例四
参照图4,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤410,浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数;
在本发明实施例中,浏览器本身的权限级别较低,可以直接向当前操作系统中的第一操作系统服务发送加载请求,以便述第一操作系统服务通过调用一虚拟的设备级驱动程序加载用于拦截窗口消息的窗口消息钩子函数。
其中加载时,所述设备级驱动程序调用LoadLibrary加载CBT钩子函数。
步骤420,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤430,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤440;
步骤440,停止所述窗口消息的传输。
优选地,还包括:
子步骤400,浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
在本发明实施例中,直接加载全局钩子函数,由于浏览器是用户级的权限,其权限级别低,可能超出了系统或者说杀毒软件对权限的设置而不能执行上述加载。因此需要以服务的形式提升转换的权限。
那么本发明中,浏览器可以预先获取第一操作系统服务的安装文件并进行安装,在重新启动后,所述服务即可随机启动。服务在操作系统中的权限级别相对较高,其可以较少受限的执行上述操作。
当然,本发明实施例也可以在执行过程中判断第一操作系统服务是否安装。优选地,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
子步骤411,判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
第一操作系统服务也是一个进程,启动后其具有进程名等信息,那么浏览器可以查询操作系统中当前启动的进程中是否有所述第一操作系统服务的进程名,如果有,说明已经安装过第一操作系统服务,反之,则还没有安装过所述第一操作系统服务。
优选地,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
子步骤412,获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
在实际中,所述第一操作系统服务的安装文件还包括虚拟的设备级驱动程序,在安装时可以一并进行安装。在第一操作系统服务不使用时不会通过其dll中的逻辑去调用所述虚拟的设备级驱动程序。
虚拟的设备级驱动程序属于内核级程序,其具有操作系统的最高权限,因此对于源节点的替换,通过虚拟的设备级驱动可以更容易的执行。
子步骤413,启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
第一操作系统服务安装时会在系统文件中生成一个dll文件,并将该dll的相关参数写入操作系统服务的注册表中。同时,会将虚拟的设备级驱动程序的sys文件安装至操作系统,并将sys文件的相关参数写入注册表中。操作系统启动后,会启动第一操作系统服务的exe文件,等待浏览器进程的通知。
优选地,所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数,包括:
子步骤414,所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
在本发明实施例中,第一操作系统服务会随系统启动而启动,并一直维持运行,监听是否收到浏览器发送的请求,如果接收到浏览器发送的加载请求,则会根据所述加载请求创建I/O请求包(I/O Request Packet,IRP)下发至所述虚拟的 设备级驱动。因为windows操作系统从应用层向底层驱动传送指令是通过I/O请求包传输的。第一操作系统服务调用本发明实施例中虚拟的设备级驱动,则标需要以所述设备级驱动为目构建IRP,然后将所述IRP下发至所述设备级驱动中。所述IRP包括控制所述设备级驱动加载CBT钩子函数的信息,比如CBT钩子函数所在dll的路径。
子步骤415,所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
所述虚拟的设备级确定程序接收到所述第一操作系统服务下发的I/O请求包后,解析所述I/O请求包中的指令,得到CBT钩子函数所在dll的信息,那么可以调用动态链接库加载函数,加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
通过上述方式,即加载CBT钩子函数。
在本发明实施例中第一操作系统服务可以在浏览器安装时作为浏览器的一部分进程安装,作为浏览器的一个功能模块。
本发明实施例则可只拦截创建窗口的窗口消息,当其为预先记录的要向浏览器注入不安全dll的应用程序发送的创建窗口的消息,则可停止对应窗口的创建,从而避免应用程序将不安全的dll注入浏览器。并且由于只拦截创建窗口的窗口消息,不拦截其他类型的窗口消息,降低了拦截的范围,避免占用过多的系统资源;并且以内核级权限进行CBT的加载,避免了操作系统对加载的权限限制而加载失败。
实施例五
参照图5,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤510,浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;
步骤520,所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数;
在本发明实施例中,浏览器本身没有设置第一操作系统服务的功能,而独立于浏览器的第二应用程序具有设置第一操作系统服务的功能,比如360安全卫士、360网盾等程序。那么浏览器可以通过预置的对外接口向独立的第二应用程序发送加载请求,所述加载请求包括CBT钩子函数的dll信息。独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动加载所述CBT钩子的dll。
步骤530,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤540,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤550;
步骤550,停止所述窗口消息的传输。
本发明示例对于第一操作系统服务和虚拟的设备级驱动的处理过程与实施例四类似。
本发明实施例则可只拦截创建窗口的窗口消息,当其为预先记录的要向浏览器注入不安全dll的应用程序发送的创建窗口的消息,则可停止对应窗口的创建,从而避免应用程序将不安全的dll注入浏览器。并且由于只拦截创建窗口的窗口消息,不拦截其他类型的窗口消息,降低了拦截的范围,避免占用过多的系统资源;本发明实施例可以利用第三方应用程序的权限,通过第一操作系统服务通过调用一虚拟的设备级驱动程序以内核级权限进行CBT的加载,避免了操作系统对加载的权限限制而加载失败。
实施例六
参照图6,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤610,浏览器向当前操作系统中的第一操作系统服务发送加载请求;
步骤620,所述第一操作系统服务接收到所述加载请求后,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序,进入步骤630。
在本发明实施例中,为了避免非用户选择的浏览器或者第三方合作的浏览器使用本发明实施例提及的防注入功能,增加系统资源的消耗,可以在第一操作系统服务中设置浏览器的黑名单。然后获取所述加载请求的发送方的身份信息,与第一操作系统服务中记录的浏览器黑名单进行匹配,如果未匹配上,不进入防注入过程;如果匹配上,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述加载请求包括所述浏览器的身份验证信息;所述身份验证信息比如浏览器名,或者说浏览器的签名信息,当然也可以是其他唯一性的身份验证信息。
进一步的,所述第一操作系统服务判断所述加载请求的发送方是否为指定浏览器包括:
子步骤621,解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
那么将浏览器名与第一操作系统服务中记录的浏览器名进行匹配,或者将浏览器的签名信息与第一操作系统服务中记录的浏览器的签名信息进行匹配,如果匹配上,则认为所述加载请求的发送方是指定浏览器,可以利用设备级驱动执行防注入功能。
步骤630,所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
步骤640,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤650,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤660;
步骤660,停止所述窗口消息的传输。
实施例七
参照图7,其示出了本发明一种浏览器防注入的方法的流程示意图,具体可以包括:
步骤710,浏览器向当前操作系统中的第一操作系统服务发送加载请求;
步骤720,所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
步骤730,所述虚拟的设备级驱动程序接收到所述I/O请求包后,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则进入步骤740;
在本发明实施例中,为了避免非用户选择的浏览器或者第三方合作的浏览器使用本发明实施例提及的防注入功能,增加系统资源的消耗,可以在虚拟的设备级驱动程序中设置浏览器的黑名单。然后根据所述IRP包获取所述加载请求的发送方的身份信息,与虚拟的设备级驱动程序中记录的浏览器黑名单进行匹配,如果未匹配上,不进入防注入过程;如果匹配上,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
优选地,所述加载请求包括所述浏览器的身份验证信息;所述身份验证信息比如浏览器名,或者说浏览器的签名信息,当然也可以是其他唯一性的身份验证信息;
进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请 求的发送方是否为指定浏览器包括:
子步骤731,所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
浏览器会将注册表路径设置请求发送至第一操作系统服务,第一操作系统服务则会基于注册表路径设置请求包括的不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径,以及浏览器的身份验证信息重新封装为IRP,再把IRP发送至所述设备级驱动程序。
子步骤732,解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
所述设备级驱动程序接收到第一操作系统服务发送的I/O请求包,则会解析其中包括的不允许访问节点的注册表位置信息和对应该不允许访问节点的虚拟节点的路径,以及浏览器的身份验证信息,然后将将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述注册表路径设置请求的发送方是指定浏览器。
步骤740,所述虚拟的设备级驱动程序加载用于拦截窗口消息的窗口消息钩子函数。
步骤750,针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
步骤760,判断所述窗口消息是否为劫持浏览器的窗口消息;如果所述窗口消息是劫持浏览器的窗口消息,则进入步骤770;
步骤770,停止所述窗口消息的传输。
实施例八
参照图8,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件810,其配置为处理接收到的窗口消息;
防注入组件820,具体包括:
全局钩子加载模组821,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组822,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组823,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组824,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述全局钩子加载模组821包括:
第一加载模组,其配置为调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述窗口消息判断模组823包括:
窗口句柄判断模组,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
实施例九
参照图9,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件910,其配置为处理接收到的窗口消息;
防注入组件920,具体包括:
全局钩子加载模组921,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组922,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组923,具体包括:
窗口句柄判断模组9231,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则进入窗口签名获取模组9232;
窗口签名获取模组9232,其配置为在所述窗口句柄匹配上之后,获取所述窗口句柄所属应用程序的验证签名;
窗口签名验证模组9233,其配置为对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息;
窗口消息停止模组924,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
实施例十
参照图10,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1010,其配置为处理接收到的窗口消息;
防注入组件1020,具体包括:
全局钩子加载模组1021,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1022,包括:
创建窗口消息拦截模组10221,其配置为针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1023,其配置为判断所述窗口消息是否为劫持浏览器的窗 口消息;
窗口消息停止模组1024,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述创建窗口消息拦截模组10221包括:
第一创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的WM_CREATE窗口消息,通过所述窗口消息钩子函数进行拦截。
实施例十一
参照图11,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1110,其配置为处理接收到的窗口消息;
防注入组件1120,具体包括:
全局钩子加载模组1121,包括:
请求处理模组11211,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1122,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1123,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1124,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,还包括:
服务安装模组,其配置为浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选第,所述服务安装模组包括:
第一服务安装模组,其配置为获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
服务启动模组,其配置为启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
优选地,所述服务安装模组包括:
服务存在判断模组,其配置为判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
优选地,所述请求处理模组包括:
请求接收模组,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动加载模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
实施例十二
参照图12,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1210,其配置为处理接收到的窗口消息;
防注入组件1220,具体包括:
全局钩子加载模组1221,包括:
第一请求发送模组12211,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
窗口消息拦截模组1222,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1223,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1224,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
实施例十三
参照图13,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1310,其配置为处理接收到的窗口消息;
防注入组件1320,具体包括:
全局钩子加载模组1321,包括:
请求发送模组13211,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求;
服务服务身份验证模组13212,其配置为在以加载用于拦截窗口消息的窗口消息钩子函数之前,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下 发至所述虚拟的设备级驱动程序;
驱动加载模组13213,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1322,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1323,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1324,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述服务身份验证模组13212包括:
服务解析验证模组,其配置为解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
实施例十四
参照图14,其示出了本发明一种浏览器客户端的结构示意图,具体可以包括:
内核组件1410,其配置为处理接收到的窗口消息;
防注入组件1420,具体包括:
全局钩子加载模组1421,包括:
请求发送模组14211,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;
请求接收模组14212,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
驱动身份验证模组14213,其配置为在加载用于拦截窗口消息的窗口消息钩子函数之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数;
窗口消息拦截模组1422,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
窗口消息判断模组1423,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
窗口消息停止模组1424,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
优选地,所述加载请求包括所述浏览器的身份验证信息;
进一步的,所述驱动身份验证模组包括:
驱动请求接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
驱动解析验证模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
实施例十五
参照图15,其示出了本发明一种带有浏览器客户端的装置的结构示意图,所述带有浏览器客户端的装置1500具体可以包括:
处理器1510,以及加载有多条可执行指令的存储器1520,所述多条指令包括执行以下步骤的方法:
加载用于拦截窗口消息的窗口消息钩子函数;
针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
判断所述窗口消息是否为劫持浏览器的窗口消息;
如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
优选地,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
优选地,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
当然,所述多条指令还包括执行前述介绍的各种方法的步骤。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器防注入设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
例如,图16示出了可以实现根据本发明的一种带有浏览器客户端的终端设备。该终端设备传统上包括处理器1610和以存储器1620形式的计算机程序产品或者计算机可读介质。存储器1620可以是诸如闪存、EEPROM(电可擦除可编程只读 存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器1620具有用于执行上述方法中的任何方法步骤的程序代码1631的存储空间1630。例如,用于程序代码的存储空间1630可以包括分别用于实现上面的方法中的各种步骤的各个程序代码1631。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,紧致盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为如参考图17所述的便携式或者固定存储单元。该存储单元可以具有与图16的终端设备中的存储器1620类似布置的存储段、存储空间等。程序代码可以例如以适当形式进行压缩。通常,存储单元包括计算机可读代码1631’,即可以由例如诸如1610之类的处理器读取的代码,这些代码当由终端设备运行时,导致该终端设备执行上面所描述的方法中的各个步骤。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出转换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
此外,还应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。

Claims (38)

  1. 一种浏览器防注入的方法,包括:
    加载用于拦截窗口消息的窗口消息钩子函数;
    针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
    判断所述窗口消息是否为劫持浏览器的窗口消息;
    如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
  2. 如权利要求1所述的方法,其特征在于,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
    调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
  3. 如权利要求1所述的方法,其特征在于,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
    将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
  4. 如权利要求3所述的方法,其特征在于,在窗口句柄匹配之后,还包括:
    获取所述窗口句柄所属应用程序的验证签名;
    对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
  5. 如权利要求1所述的方法,其特征在于,所述针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
    针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
  6. 如权利要求1所述的方法,其特征在于,所述针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截包括:
    针对操作系统中的创建窗口的WM_CREATE消息,通过所述窗口消息钩子函数进行拦截。
  7. 如权利要求1所述的方法,其特征在于,所述加载用于拦截窗口消 息的窗口消息钩子函数包括:
    浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
  8. 如权利要求7所述的方法,其特征在于,还包括:
    浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
  9. 如权利要求1所述的方法,其特征在于,所述浏览器向当前操作系统中的第一操作系统服务发送加载请求,包括:
    所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
  10. 如权利要求8所述的方法,其特征在于,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
    获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
    启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
  11. 如权利要求8所述的方法,其特征在于,所述浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务,包括:
    判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
  12. 如权利要求7或9所述的方法,其特征在于,所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数,包括:
    所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
    所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
  13. 如权利要求12所述的方法,其特征在于,在以加载用于拦截窗口消息的窗口消息钩子函数之前,还包括:
    第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;
    如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;
    如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
  14. 如权利要求13所述的方法,其特征在于,所述加载请求包括所述浏览器的身份验证信息;
    进一步的,所述第一操作系统服务判断所述加载请求的发送方是否为指定浏览器包括:
    解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
  15. 如权利要求12所述的方法,其特征在于,在加载用于拦截窗口消息的窗口消息钩子函数之前,还包括:
    所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;
    如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;
    如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数。
  16. 如权利要求15所述的方法,其特征在于,所述加载请求包括所述 浏览器的身份验证信息;
    进一步的,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器包括:
    所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
    解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
  17. 一种浏览器客户端,包括:
    内核组件,其配置为处理接收到的窗口消息;
    防注入组件,具体包括:
    全局钩子加载模组,其配置为加载用于拦截窗口消息的窗口消息钩子函数;
    窗口消息拦截模组,其配置为针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
    窗口消息判断模组,其配置为判断所述窗口消息是否为劫持浏览器的窗口消息;
    窗口消息停止模组,其配置为如果所述窗口消息是劫持浏览器的窗口消息,则停止所述将所述窗口消息传输至内核组件。
  18. 如权利要求17所述的浏览器客户端,其特征在于,所述全局钩子加载模组包括:
    第一加载模组,其配置为调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
  19. 如权利要求17所述的浏览器客户端,其特征在于,所述窗口消息判断模组包括:
    窗口句柄判断模组,其配置为将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
  20. 如权利要求19所述的浏览器客户端,其特征在于,还包括:
    窗口签名获取模组,其配置为在所述窗口句柄匹配上之后,获取所述窗口句柄所属应用程序的验证签名;
    窗口签名验证模组,其配置为对所述验证签名进行验证,如果所述验证失败,则确定所述窗口消息为劫持浏览器的窗口消息。
  21. 如权利要求17所述的浏览器客户端,其特征在于,所述窗口消息拦截模组包括:
    创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的窗口消息,通过所述窗口消息钩子函数进行拦截。
  22. 如权利要求17所述的浏览器客户端,其特征在于,所述创建窗口消息拦截模组包括:
    第一创建窗口消息拦截模组,其配置为针对操作系统中的创建窗口的WM_CREATE窗口消息,通过所述窗口消息钩子函数进行拦截。
  23. 如权利要求17所述的浏览器客户端,其特征在于,所述全局钩子加载模组包括:
    请求处理模组,其配置为浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
  24. 如权利要求23所述的浏览器客户端,其特征在于,还包括:
    服务安装模组,其配置为浏览器获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
  25. 如权利要求17所述的浏览器客户端,其特征在于,所述全局钩子加载模组包括:
    第一请求发送模组,其配置为所述浏览器通过预置的接口向独立于浏览器的第二应用程序发送加载请求;所述独立于浏览器的第二应用程序将所述加载请求发送至当前操作系统中的第一操作系统服务,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
  26. 如权利要求24所述的浏览器客户端,其特征在于,所述服务安装模组包括:
    第一服务安装模组,其配置为获取第一操作系统服务的安装文件,通过所述第一操作系统服务的安装文件安装所述第一操作系统服务的动态链接库和所述虚拟的设备级驱动程序;
    服务启动模组,其配置为启动所述第一操作系统服务所在应用程序,以加载第一操作系统服务的动态链接库;所述第一操作系统服务通过所述动态链接库调用所述虚拟的设备级驱动程序。
  27. 如权利要求24所述的浏览器客户端,其特征在于,所述服务安装模组包括:
    服务存在判断模组,其配置为判断所述第一操作系统服务是否存在;如果所述第一操作系统服务不存在,则获取第一操作系统服务的安装文件并进行安装,以得到所述当前操作系统中的第一操作系统服务。
  28. 如权利要求23或25所述的浏览器客户端,其特征在于,所述请求处理模组包括:
    请求接收模组,其配置为所述第一操作系统服务接收到所述加载请求,根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序;
    驱动加载模组,其配置为所述虚拟的设备级驱动程序接收到所述I/O请求包后,调用动态链接库加载函数加载用于拦截窗口消息的窗口消息钩子函数。
  29. 如权利要求25所述的浏览器客户端,其特征在于,所述全局钩子加载模组还包括:
    服务服务身份验证模组,其配置为在以加载用于拦截窗口消息的窗口消息钩子函数之前,第一操作系统服务判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则根据所述加载请求创建I/O请求包下发至所述虚拟的设备级驱动程序。
  30. 如权利要求29所述的浏览器客户端,其特征在于,所述加载请求 包括所述浏览器的身份验证信息;
    进一步的,所述服务身份验证模组包括:
    服务解析验证模组,其配置为解析所述加载请求中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
  31. 如权利要求28所述的浏览器客户端,其特征在于,所述全局钩子加载模组还包括:
    驱动身份验证模组,其配置为在加载用于拦截窗口消息的窗口消息钩子函数之前,所述虚拟的设备级驱动程序根据所述I/O请求包判断所述加载请求的发送方是否为指定浏览器;如果所述加载请求的发送方不是指定浏览器,则不进入后续处理;如果所述加载请求的发送方是指定浏览器,则加载用于拦截窗口消息的窗口消息钩子函数。
  32. 如权利要求31所述的浏览器客户端,其特征在于,所述加载请求包括所述浏览器的身份验证信息;
    进一步的,所述驱动身份验证模组包括:
    驱动请求接收模组,其配置为所述虚拟的设备级驱动程序接收由第一操作系统服务发送的I/O请求包;所述I/O请求包括浏览器的身份验证信息;
    驱动解析验证模组,其配置为解析所述I/O请求包中的身份验证信息,将所述身份验证信息与预先存储的身份验证信息进行匹配;如果匹配上,则判断所述加载请求的发送方是指定浏览器。
  33. 一种带有浏览器客户端的装置,包括:
    处理器,以及加载有多条可执行指令的存储器,所述多条指令包括执行以下步骤的方法:
    加载用于拦截窗口消息的窗口消息钩子函数;
    针对操作系统中的窗口消息,通过所述窗口消息钩子函数进行拦截;
    判断所述窗口消息是否为劫持浏览器的窗口消息;
    如果所述窗口消息是劫持浏览器的窗口消息,则停止所述窗口消息的传输。
  34. 如权利要求33所述的带有浏览器客户端的装置,其特征在于,所述加载用于拦截窗口消息的窗口消息钩子函数,包括:
    调用动态链接库加载函数加载所述窗口消息钩子函数所在的动态链接库,以加载所述窗口消息钩子函数。
  35. 如权利要求33所述的带有浏览器客户端的装置,其特征在于,所述判断所述窗口消息是否为劫持浏览器的窗口消息,包括:
    将所述窗口消息所属的窗口句柄名与预置的窗口句柄名单进行匹配;如果所述窗口句柄匹配上,则确定所述窗口消息为劫持浏览器的窗口消息。
  36. 如权利要求33所述的带有浏览器客户端的装置,其特征在于,所述加载用于拦截窗口消息的窗口消息钩子函数包括:
    浏览器向当前操作系统中的第一操作系统服务发送加载请求,以便所述第一操作系统服务通过调用一虚拟的设备级驱动程序以加载用于拦截窗口消息的窗口消息钩子函数。
  37. 一种计算机程序,包括计算机可读代码,当所述计算机可读代码在终端设备上运行时,导致所述终端设备执行根据权利要求1-16中的任一个所述的浏览器防注入方法。
  38. 一种计算机可读介质,其中存储了如权利要求37所述的计算机程序。
PCT/CN2015/094843 2014-12-05 2015-11-17 浏览器防注入方法、浏览器客户端和装置 WO2016086765A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410740794.5 2014-12-05
CN201410740794.5A CN104539584B (zh) 2014-12-05 2014-12-05 浏览器防注入方法、浏览器客户端和装置

Publications (1)

Publication Number Publication Date
WO2016086765A1 true WO2016086765A1 (zh) 2016-06-09

Family

ID=52855053

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2015/094843 WO2016086765A1 (zh) 2014-12-05 2015-11-17 浏览器防注入方法、浏览器客户端和装置

Country Status (2)

Country Link
CN (1) CN104539584B (zh)
WO (1) WO2016086765A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256339A (zh) * 2019-07-22 2021-01-22 百度在线网络技术(北京)有限公司 多进程管理方法、装置、电子设备和存储介质
US10997290B2 (en) 2018-10-03 2021-05-04 Paypal, Inc. Enhancing computer security via detection of inconsistent internet browser versions
CN113672221A (zh) * 2021-07-28 2021-11-19 安徽省水利水电勘测设计研究总院有限公司 基于QML的MicroStation平台图形用户界面构建方法和系统

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104539584B (zh) * 2014-12-05 2018-01-19 北京奇虎科技有限公司 浏览器防注入方法、浏览器客户端和装置
CN106203087B (zh) * 2015-04-29 2020-04-28 腾讯科技(深圳)有限公司 注入防护方法、系统、终端以及存储介质
CN106649417A (zh) * 2015-11-04 2017-05-10 珠海市君天电子科技有限公司 一种窗口拦截方法及装置
CN106658195B (zh) * 2015-11-04 2019-08-23 珠海豹趣科技有限公司 一种视频广告拦截方法及装置
CN105468674A (zh) * 2015-11-12 2016-04-06 珠海市君天电子科技有限公司 窗口拦截方法、装置和终端设备
CN106873948B (zh) * 2015-12-10 2020-03-27 珠海豹趣科技有限公司 日历显示方法及装置
CN106169046A (zh) * 2016-07-04 2016-11-30 北京金山安全软件有限公司 防止消息钩子注入的方法、装置和终端设备
CN106709331B (zh) * 2016-11-01 2020-09-25 腾讯科技(深圳)有限公司 一种消息钩子防注入方法、装置以及客户端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061323A1 (en) * 2008-04-23 2013-03-07 Trusted Knight Corporation System and method for protecting against malware utilizing key loggers
CN104123120A (zh) * 2013-04-23 2014-10-29 腾讯科技(深圳)有限公司 一种浏览器页面数据过滤方法、装置和系统
CN104123276A (zh) * 2013-04-23 2014-10-29 腾讯科技(深圳)有限公司 一种浏览器中弹窗的拦截方法、装置和系统
CN104539584A (zh) * 2014-12-05 2015-04-22 北京奇虎科技有限公司 浏览器防注入方法、浏览器客户端和装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103218561B (zh) * 2013-03-18 2016-04-06 珠海市君天电子科技有限公司 一种保护浏览器的防篡改方法和装置
CN103617092A (zh) * 2013-11-21 2014-03-05 北京奇虎科技有限公司 一种基于浏览器的插件运行方法和装置
CN103617395B (zh) * 2013-12-06 2017-01-18 北京奇虎科技有限公司 一种基于云安全拦截广告程序的方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130061323A1 (en) * 2008-04-23 2013-03-07 Trusted Knight Corporation System and method for protecting against malware utilizing key loggers
CN104123120A (zh) * 2013-04-23 2014-10-29 腾讯科技(深圳)有限公司 一种浏览器页面数据过滤方法、装置和系统
CN104123276A (zh) * 2013-04-23 2014-10-29 腾讯科技(深圳)有限公司 一种浏览器中弹窗的拦截方法、装置和系统
CN104539584A (zh) * 2014-12-05 2015-04-22 北京奇虎科技有限公司 浏览器防注入方法、浏览器客户端和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997290B2 (en) 2018-10-03 2021-05-04 Paypal, Inc. Enhancing computer security via detection of inconsistent internet browser versions
CN112256339A (zh) * 2019-07-22 2021-01-22 百度在线网络技术(北京)有限公司 多进程管理方法、装置、电子设备和存储介质
CN112256339B (zh) * 2019-07-22 2023-11-03 百度在线网络技术(北京)有限公司 多进程管理方法、装置、电子设备和存储介质
CN113672221A (zh) * 2021-07-28 2021-11-19 安徽省水利水电勘测设计研究总院有限公司 基于QML的MicroStation平台图形用户界面构建方法和系统

Also Published As

Publication number Publication date
CN104539584A (zh) 2015-04-22
CN104539584B (zh) 2018-01-19

Similar Documents

Publication Publication Date Title
WO2016086765A1 (zh) 浏览器防注入方法、浏览器客户端和装置
WO2016086767A1 (zh) 实现浏览器安全的方法、浏览器客户端和装置
US10515208B2 (en) Isolation and presentation of untrusted data
US10681050B2 (en) Ephemeral applications
KR101565230B1 (ko) 샌드박스에 참조들을 유지하는 시스템 및 방법
US8230415B1 (en) On-demand advertising of software packages
US20100037317A1 (en) Mehtod and system for security monitoring of the interface between a browser and an external browser module
US20100306851A1 (en) Method and apparatus for preventing a vulnerability of a web browser from being exploited
WO2014121714A1 (zh) 一种通知栏消息的处理方法、装置和系统
WO2015180690A1 (zh) 验证信息的读取方法及装置
US20060212548A1 (en) Method and system for installing applications via a display page
GB2519608A (en) Computer device and method for isolating untrusted content
WO2013097666A1 (zh) 基于沙箱技术浏览网页的方法及装置
WO2014121713A1 (zh) 一种网址拦截处理的方法、装置和系统
WO2015183456A1 (en) Consistent extension points to allow an extension to extend functionality of an application to another application
WO2016019893A1 (zh) 应用安装的方法和装置
KR101453742B1 (ko) 웹 어플리케이션 실행을 위한 보안 제공 장치 및 방법
WO2014071867A1 (zh) 程序处理方法和系统,用于程序处理的客户端和服务器
WO2015058574A1 (zh) 实现扩展应用程序的推送通知的方法及装置
CN110086827B (zh) 一种sql注入校验方法、服务器以及系统
CN112966257B (zh) 一种应用程序的授权方法及装置
WO2016086766A1 (zh) 浏览器防注入的方法、浏览器客户端和装置
US20230041769A1 (en) Management system for disk encryption
CN106648770B (zh) 一种应用程序安装包的生成方法、加载方法及装置
US20130262571A1 (en) Client Control Method and Client Control System

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15864571

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15864571

Country of ref document: EP

Kind code of ref document: A1