Hereinafter, the best mode for carrying out the present invention will be described.
In Web pages displayed based on HTML documents obtained from the WWW, there are several mechanisms of realizing a process corresponding to “non-immediate process”. In this embodiment, the following three functions are search targets as mechanisms of enabling the non-immediate process in existing major Web browsers.
(1) Timer
A timer is a specification for causing the Web browser to perform some sort of process after a certain period of time. For example, “refresh” specified at http-equiv attribute of a meta tag of HTML can cause the Web browser to request a specified URL after a specified time period has elapsed. For example, using an API (Application Program Interface) with “window.setTimeout (script, msec) in JavaScript” can cause the Web browser to start executing a specified process (script) after a specified time period (msec).
(2) Embedded Object
An embedded object is an arbitrary program or data specified with an object tag and the like of HTML. For example, “JavaApplet” specified with an applet tag of HTML can cause an arbitrary URL to be requested at an arbitrary timing by a Java program.
(3) High-Sensitive Event Handler
A high-sensitive event handler is a handler for responding events occurring independently of a user's intention, among event handlers for scripts such as JavaScript and the like. For example, “onMouseOver event handler (attribute)” specified at a body tag of HTML can cause an arbitrary script to be executed only when a mouse pointer just passes through a window being displayed.
A document display processing apparatus (Web browser) 1 is a processing apparatus for processing HTTP protocol communications, displaying an obtained Web page, and also displaying a possibility of a predetermined non-immediate process existing in the Web page, in a display window for the Web page.
The Web browser 1 includes a control unit 10, a page management unit 101, a DOM management-display-event capturing unit 103, a communication unit 105, a parsing and DOM generation unit 107, an event handler management unit 109, a script processing unit 111, a timer management unit 113, an embedded object processing and management unit 115, a non-immediate process existence possibility detection unit 151, a non-immediate process existence possibility management and display unit 153, and an embedded object target setting unit 155.
The non-immediate process existence possibility management and display unit 153 is provided as inner configuration means of the DOM management-display-event capturing unit 103.
Characteristics of the present invention are mainly realized by the non-immediate process existence possibility detection unit 151 and the non-immediate process existence possibility management and display unit 153.
The control unit 10 controls the following respective processing units.
The page management unit 101 manages the Web page being displayed in each display window of the Web browser 1. The page management unit 101 manages the Web page being displayed in the display window with page identification information (Page ID).
The DOM management-display-event capturing unit 103 manages a DOM (Document Object Model) of the Web page managed by the page management unit 101, displays a current DOM of the Web page in the display window, and captures the event occurring in the display window.
The communication unit 105 performs HTTP communications with a server.
The parsing and DOM generation unit 107 parses the HTML documents obtained by the communication unit 105 and generates the DOM.
The event handler management unit 109 uses the page identification information (Page ID) of the page management unit 101 to manage what kind of event handler exists in each Web page.
The script processing unit 111 interprets and evaluates the scripts such as JavaScript and the like contained or specified in the HTML document.
The timer management unit 113 manages a timer specification specified in the HTML document, the script or the like. At the time specified by each timer, previously specified communications or processes are executed by the communication unit 105, the script processing unit 111 and the like.
The embedded object processing and management unit 115 manages the embedded object specified in the HTML document, and causes a relevant processing system (not shown) to execute the process of the embedded object.
The non-immediate process existence possibility detection unit 151 monitors the processes by the timer management unit 113, the embedded object processing and management unit 115, the event handler management unit 109 and the like, and detects a possibility of the non-immediate process such as the timer, the embedded object, the high-sensitive event handler or the like existing in the Web page (non-immediate process existence possibility), based on processing operations of the respective processing units.
The non-immediate process existence possibility detection unit 151 detects the non-immediate process existence possibility if any of the following high-sensitive event handlers exists among the event handlers managed by the event handler management unit 109.
(1) Handlers for events occurring by mouse operations, including, for example, onClick (when a mouse was clicked on), onDblClick (when the mouse was double-clicked), onMouseDown (when a mouse button was depressed), onMouseUP (when the mouse button was released), onMouseOver (when a mouse cursor was positioned on the object), onMouseOut (when the mouse cursor left the object), and onMouseMove (when the mouse cursor moved).
(2) Handlers for events occurring by keyboard operations, including, for example, onKeyDown (when a key was depressed), onKeyPress (when the key was being depressed for a while), and onKeyUp (when the depressed key was released).
(3) Handlers for events occurring when the Web page is cleared, including, for example, onUnload (when the page is closed).
(4) Handlers for events related to a focus, including, for example, onFocus (when its part obtained the focus (the part became selected)), and onBlur (when its part lost the focus).
(5) Handlers for events of changing the position or the size of the display windows, including, for example, onResize (when the size of the display window was changed), and onMove (when the display window was moved).
(6) Handlers for events related to selection in the display window, including, for example, onSelect (for example, a text was selected).
These event handlers may occur with the mouse operations and the key operations by the user, for example, when the user switches the display window (active display window) to be operated, or changes the position or the size of the display window.
Also, the non-immediate process existence possibility detection unit 151 detects the non-immediate process existence possibility if a predetermined embedded object exists in embedded objects managed by the embedded object processing and management unit 115. The embedded object to be selected as a detection target is an object other than that specifying only predetermined data or that explicitly specified as out of the detection target by the user with the embedded object target setting unit 155. For example, the embedded object having no classid attribute at the object tag specifies the data only, and therefore has no possibility of the non-immediate process depending on a specified data type, and is not necessary to be selected as the detection target.
The non-immediate process existence possibility management and display unit 153 displays the non-immediate process existence possibility in each display window.
The embedded object target setting unit 155 sets the embedded object to be selected as the detection target for the non-immediate process existence possibility by the non-immediate process existence possibility detection unit 151, based on information inputted by the user.
The non-immediate process existence possibility detection unit 151 determines that there is no possibility of the non-immediate process if the embedded object managed by the embedded object processing and management unit 115 corresponds to that specifying the MIME type of the notified data kinds.
Next, a process flow of the present invention will be described.
The page management unit 101 of the Web browser 1 accepts a request to communicate the Web page specified with the Page ID (step Si). The control unit 10 sets a State ID=Start Communication, and outputs “Page ID” and “State ID=Start Communication” to the non-immediate process existence possibility detection unit 151 (step S2).
The non-immediate process existence possibility detection unit 151 accepts “Page ID” and “State ID”, and performs a non-immediate process existence possibility detection process (step S10). Contents of the process will be described later.
The communication unit 105 communicates with a requested server (step S3).
After the communication, the control unit 10 sets the State ID=Start Parsing, and outputs “Page ID” and “State ID=Start Parsing” to the non-immediate process existence possibility detection unit 151 (step S4).
The parsing and DOM generation unit 107 generates the DOM from the HTML document (step S5). Furthermore, the parsing and DOM generation unit 107 parses the DOM, and sets respective data to the timer management unit 113, the event handler management unit 109, and the embedded object processing and management unit 115 (step S6).
For setting the data to the timer management unit 113, for example, the parsing and DOM generation unit 107 searches an element having “refresh” specified at an http-equiv attribute of the meta tag from the DOM, and if any, sets its content attribute value as a timer for requesting to the specified URL after the elapse of the specified time period. It should be noted that the data setting to the timer management unit 113 is also performed on invoking predetermined APIs (for example, window.setTimeout ( . . . ), window.setInterval ( . . . ) and the like) by the script processing unit 111.
Also, for setting the data to the event handler management unit 109, the parsing and DOM generation unit 107 searches an element having an event handler attribute from the DOM and sets its contents. In addition, for setting the data to the embedded object processing and management unit 115, the parsing and DOM generation unit 107 obtains the embedded objects specified with respective tags “object”, “applet” and “embed”, and sets the obtained objects.
The control unit 10 sets the State ID=Display Has Been Changed, and outputs “Page ID” and “State ID=Display Has Been Changed” to the non-immediate process existence possibility detection unit 151 (step S7).
The DOM management-display-event capturing unit 103 displays the Web page in the display window based on the DOM and starts the event capturing (step S8).
Then, if there is any script to be executed by the event handler managed by the event handler management unit 109, prior to processing the script by the script processing unit 111, the control unit 10 sets the State ID=Start Script Process, and outputs “Page ID” and “State ID=Start Script Process” to the non-immediate process existence possibility detection unit 151 (step S9).
With the processes at steps S2, S4 and S7 or S9, if “Page ID” and “State ID” are outputted, the non-immediate process existence possibility detection unit 151 performs the non-immediate process existence possibility detection process (step S10). It should be noted that the order of the processes at steps S2, S4 and S7 or S9 is not limited to that shown in
Then, the non-immediate process existence possibility management and display unit 153 receives an output from the non-immediate process existence possibility detection unit 151 and performs a non-immediate process existence possibility display process (step S11).
The non-immediate process existence possibility detection unit 151 accepts the Page ID (step S20). Furthermore, the non-immediate process existence possibility detection unit 151 determines the setting of the State ID (steps S21 to S24).
If the State ID is “Start Communication” (YES at step S21), the non-immediate process existence possibility detection unit 151 outputs a result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility=Yes” (step S25). Alternatively, if the State ID is “Start Parsing” (YES at step S22), the non-immediate process existence possibility detection unit 151 outputs the result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility=Yes” (step S25). Alternatively, if the State ID is “Start Script Process” (YES at step S23), the non-immediate process existence possibility detection unit 151 outputs the result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility=Yes” (step S25).
Alternatively, if the State ID is not set to any of “Start Communication”, “Start Parsing” and “Start Script Process” (No at steps S21, S22 and S23), it corresponds to “State ID=Display Has Been Changed” (step S24), and this process proceeds to step S26.
Then it is determined whether or not there is any timer specification in the Web page corresponding to the Page ID (step S26). If there is any timer specification (YES at step S26), the non-immediate process existence possibility detection unit 151 outputs the result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility=Yes” (step S25).
Alternatively, if there is no timer specification (NO at step S26), it is determined whether or not there is any predetermined embedded object in the Web page corresponding to the Page ID (step S27). If there is any predetermined embedded object (YES at step S27), the non-immediate process existence possibility detection unit 151 outputs the result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility =Yes” (step S25). In addition, an embedded object existence determination process will be described later.
Alternatively, it is determined whether or not there is any predetermined high-sensitive event handler in the Web page corresponding to the Page ID (step S28). If there is any predetermined high-sensitive event handler (YES at step S28), the non-immediate process existence possibility detection unit 151 outputs the result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility=Yes” (step S25).
Alternatively, if there is not any of the timer specification, the embedded object and the high-sensitive event handler in the Web page corresponding to the Page ID (NO at steps S26, S27 and S28), the non-immediate process existence possibility detection unit 151 outputs a result that the Web page corresponding to the Page ID is “Non-immediate Process Existence Possibility=No” (step S29).
The non-immediate process existence possibility detection unit 151 accepts the Page ID (step S30), and repeats the process of step S32 and later for each embedded object in the Web page corresponding to the Page ID (step S31).
First, it is determined whether or not the tag of the embedded object is “applet” (step S32), and if the tag of the embedded object is “applet” (YES at step S32), the non-immediate process existence possibility detection unit 151 outputs a result of “Embedded Object=Yes” in the Web page corresponding to the Page ID (step S33).
If the tag of the embedded object is not “applet” (NO at step S32), it is determined whether or not the tag of the embedded object is “object” (step S34). If the tag of the embedded object is “object” (YES at step S34), it is further determined whether or not there is “classid” at the attribute of the tag (step S35). If there is “classid” at the attribute of the tag (YES at step S35), the non-immediate process existence possibility detection unit 151 outputs the result of “Embedded Object=Yes” in the Web page corresponding to the Page ID (step S33).
Alternatively, if there is not “classid” at the attribute of the tag (NO at step S35), it is further determined whether or not there is “data” at the attribute of the tag (step S36). If there is not “data” at the attribute of the tag (NO at step S36), the non-immediate process existence possibility detection unit 151 outputs the result of “Embedded Object=Yes” in the Web page corresponding to the Page ID (step S33). On the other hand, if there is “data” at the attribute of the tag (YES at step S36), it is further determined whether or not the MIME type of the obtained data matches any of a MIME type group specified by the embedded object target setting unit 155 (step S37).
If the MIME type of the obtained data does not match any of the MIME type group specified by the embedded object target setting unit 155 (NO at step S37), the non-immediate process existence possibility detection unit 151 outputs the result of “Embedded Object=Yes” in the Web page corresponding to the Page ID (step S33). On the other hand, if the MIME type of the obtained data matches any of the specified MIME type group (YES at step S37), the non-immediate process existence possibility detection unit 151 outputs a result of “Embedded Object=No” in the Web page corresponding to the Page ID (step S38).
The non-immediate process existence possibility management and display unit 153 accepts “Page ID” and “Non-immediate Process Existence Possibility (Possibility)” (step S40), and determines the setting of “Non-immediate Process Existence Possibility” (step S41).
If it is determines to be “Non-immediate Process Existence Possibility=Yes” (step S41), the non-immediate process existence possibility management and display unit 153 displays that “There is Non-immediate Process Existence Possibility (There is Possibility)” at a section of “Current Page (relevant page)” in the display window for the Web page corresponding to the Page ID (step S42). If it is determined to be “Non-immediate Process Existence Possibility=No” (step S41), the non-immediate process existence possibility management and display unit 153 displays that “There is no Non-immediate Process Existence Possibility (There is no Possibility)” at the section of “Current Page (relevant page)” in the display window for the Web page corresponding to the Page ID (step S43).
Furthermore, the non-immediate process existence possibility display process is repeated for other Web pages (step S44).
The non-immediate process existence possibility management and display unit 153 performs the process at steps S51 and S52, with respect to Web pages corresponding to remaining Page IDs managed by the page management unit 101 (step S50). The non-immediate process existence possibility management and display unit 153 accepts the next Page ID in the managed Web pages (step S51), and determines “Non-immediate Process Existence Possibility” for the Web page corresponding to the accepted Page ID (step S52).
When the process is completed with respect to the remaining Page IDs managed by the page management unit 101 (step S53), if there is any Web page determined to be “Non-immediate Process Existence Possibility=Yes” among the remaining Web pages (YES at step S54), the non-immediate process existence possibility management and display unit 153 displays that “There is Possibility” at a section of “Other Pages” in the display window for the Page ID accepted at step S40 (step S55). On the other hand, if there is no Web page determined to be “Non-immediate Process Existence Possibility=Yes” among the remaining Web pages (NO at step S54), the non-immediate process existence possibility management and display unit 153 displays that “There is no Possibility” at the section of “Other Pages” in the display window for the Page ID accepted at step S40 (step S56).
It should be noted that the non-immediate process existence possibility management and display unit 153 may display that “There is Possibility/There is no Possibility” for each of other Web pages.
With
Here, it is assumed that the Web browser 1 is displaying three different Web pages in display windows 30a, 30b and 30c. It is assumed that a page in the display window 30a shown in
The non-immediate process existence possibility detection unit 151 detects the non-immediate process existence possibility with respect to the three Web pages 30a, 30b and 30c managed by the page management unit 101. Since the Web page in the display window 30a includes the mechanism of performing the CSRF, the non-immediate process existence possibility detection unit 151 detects an element capable of executing the non-immediate process and outputs “Possibility=Yes”.
On the other hand, it is assumed that the non-immediate process existence possibility detection unit 151 detects no element capable of executing the non-immediate process from the Web pages in the display windows 30b and 30c. The non-immediate process existence possibility detection unit 151 outputs “Non-immediate Process Existence Possibility=No” with respect to the Web pages in the display windows 30b and 30c.
In response to the output result from the non-immediate process existence possibility detection unit 151, the non-immediate process existence possibility management and display unit 153 displays an icon showing “Non-immediate Process Existence Possibility=Yes” (shown with a black circle) at “Current Page” and an icon showing “Non-immediate Process Existence Possibility=No” (shown with a white rectangle) at “Other Pages” in the display window 30a, as shown in
In addition, since the Web page in the display window 30b is “Non-immediate Process Existence Possibility=No”, the non-immediate process existence possibility management and display unit 153 displays the icon showing “Non-immediate Process Existence Possibility=No” at “Current Page” in the display window 30b, as shown in
Similarly, since the Web page in the display window 30c is “Non-immediate Process Existence Possibility=No”, the non-immediate process existence possibility management and display unit 153 displays the icon showing “Non-immediate Process Existence Possibility=No” at “Current Page” and the icon showing “Non-immediate Process Existence Possibility=Yes” at “Other Pages” in the display window 30c, as shown in
Thereby, the user can see these icons displayed in the active display window to recognize whether or not there is any risk of the CSRF in the Web page on which he is currently operating or the Web pages being displayed in other display windows.
In a status shown in
Then, it is assumed that the user noticed the risk of the CSRF and closed the display window 30a. At this point, since no element capable of executing the non-immediate process is detected from the Web pages in the display windows 30b and 30c, the non-immediate process existence possibility detection unit 151 outputs “Non-immediate Process Existence Possibility=No”.
Since the Web page in the display window 30b is “Non-immediate Process Existence Possibility=No”, the non-immediate process existence possibility management and display unit 153 displays the icon showing “Non-immediate Process Existence Possibility=No” at “Current Page” in the display window 30b, as shown in
Similarly, since the Web page in the display window 30c is “Non-immediate Process Existence Possibility=No”, the non-immediate process existence possibility management and display unit 153 displays the icon showing “Non-immediate Process Existence Possibility=No” at “Current Page” and the icon showing “Non-immediate Process Existence Possibility=No” also at “Other Pages”, respectively in the display window 30c, as shown in
The user can see changes in the icons in the display windows shown in
In this way, according to the present invention, it is possible to make the user constantly conscious of the possibility of the existence of the non-immediate process capable of performing a process irrelevant to the user's intention, after the Web page is onloaded on the Web browser. Therefore, it can be expected that damage to the user may be prevented from occurring.
As described above, although the present invention has been described with its embodiments, various variations of the present invention are naturally possible within the range of the gist of the present invention.
Number | Date | Country | Kind |
---|---|---|---|
2006-264864 | Sep 2006 | JP | national |