SYSTEM AND METHOD OF FILTERING ADULT CONTENT
ON THE INTERNET
By Fabricc Chupin, David Smith, Scott Jarol, and David Redkey
BACKGROUND OF THE INVENTION
1. Field of the invention
The present invention relates generally to a web browser and methods thereof and more specifically to a web browser having embedded content filtering and methods thereof.
2. Description of the Prior Art
Information made available through the Internet in the form of Web Sites, Chat Rooms and Electronic Mail, is generally unregulated. Internet Directory Services and Search Engines such as Yahoo®, HotBot® and others can provide order to the subject matter of the vast amount of information available. However Directory Servers are generally limited to categorizing Web Sites based on Keywords supplied by the site's content provider. Actual content is generally not verified. Internet Search Engines typically provide results by matching the same Keywords to a specific user query to generate a list of matches for each specific query. Again, actual content of the matches is generally not checked. For some users, for example children, such unregulated access is undesirable. In addition, some young users have difficulty in navigating through the vast Internet resource and would benefit if assistance in accessing appropriate information could be made available.
Popular Internet Browsers such as the Netscape Navigator® and the Microsoft Internet Explorer® provide some of content screening. However, this screening is generally limited only to Web Sites and typically involves several levels of setup interaction on the part of a parent or guardian to become active. Typically, once active, the content screening is not user specific, thus where a parent might want to limit a child's access to some Internet content, the parent may not want all users limited in the same manner. Other solutions to content screening, for example stand alone solutions such as Surf Watch® or Net Nanny®, while also effective at limiting access to undesirable Web Sites, generally have the same limitations with regard to other sources of Internet content as the browsers. Another limitation of the content screening provided by currently available solutions is that it is typically focused only on sex,
violence and the like, and thus is directed primarily to protecting children. The need for content screening, however, can extend beyond this current focus. For example, in some corporate environments where Internet access is desirable, often it would be more desirable if that access could be readily managed beyond the level that current Browser controls make available. In addition, it would be desirable if this content screening could be effected with little or no monitoring by corporate censors.
There is a need for Internet content regulation and/or screening that is not limited to only preventing access to undesirable Web Sites. This need for regulation extends to other sources of information available through the Internet such as Electronic Mail, Chat Rooms, News Groups and the like. In addition, it would be advantageous for this Internet content regulation to be available though an integrated solution, thus simplifying control of the criteria used for the screening process. It would also be desirable if this integrated solution could be tailored to meet a variety of needs, from those of young children to those of teens, young adults and others. Thus, it would be desirable if such an integrated solution could provide interactive assistance to help direct activities where appropriate within a friendly, engaging, graphical interface.
SUMMARY OF THE INVENTION
A filter for interactive use with an Internet web browser for filtering adult content is provided. The filter utilizes a filter database to screen information requested for viewing within a web browser. The information is screened locally by a domain white list, an URL black list, and an URL white list. The information is also screened remotely from a domain white list, an URL gray list, and an URL black list. Furthermore, words within the requested web page are screened with a local word gray list and a local word black list to add further filtering features prior to displaying the web page to the user. The amount of filtering is readily modified through local content access settings by a local supervisor and by the selection of the remote site(s) contacted for additional content access control information.
BRIEF DESCRIPTION OF THE DRAWINGS
The present invention may be better understood, and its numerous objects, features, and advantages made apparent to those skilled in the art by referencing the accompanying illustrations. For simplicity and ease of understanding, common numbering of elements is employed where an element is the same in different illustrations.
FIG. 1 is a schematic diagram illustrating a browser client requesting a web page over the internet from a requested server, wherein the browser client also accesses remote servers to help filter adult content from the requested web page, in accordance with the present invention; FIG. 2 is a block diagram of the browser client's computer shown in FIG. 1, in accordance with the present invention;
FIG. 3 is a block diagram of one embodiment of the non-volatile memory module located within the browser client's computer of FIG. 2; FIG. 4 is a schematic block diagram illustrating the browser and local filter database shown in the non- volatile memory module of FIG. 3 and how the web browser connects with a remote filter database;
FIG. 5 is a flowchart of a method for a supervisor to add or remove user limitations for web browsing, according to the invention; FIG. 6 is a flowchart depicting the manner in which screening and/or filtering aspects are applied within an embodiment in accordance with the present invention;
FIG. 7 is a flowchart depicting the method of filtering continued from Process A in FIG. 6;
FIG. 8 is a flowchart depicting the method of filtering continued from Process B in FIG. 6, in accordance with the present invention;
FIG. 9 is a flowchart depicting the method of filtering continued from Step A in FIG. 8; FIG. 10 is a flowchart depicting the method of filtering continued from Step B in FIG. 8; and
FIG. 11 is a flowchart depicting the method of filtering continued from Consolidated Concurrent Processes A and B in FIG. 7 and FIG. 8, according to the present invention.
DETAILED DESCRIPTION OF THE INVENTION
The following is a detailed description of illustrative embodiments of the present invention. As these embodiments of the present invention are described with reference to the aforementioned illustrations, various modifications or adaptations of the methods and or specific structures described may become apparent to those skilled in the art. All such modifications, adaptations, or variations that rely upon the teachings of the present invention, and through which these teachings have advanced the art, are considered to be within the spirit and scope of the present invention. Hence, these descriptions and drawings should not be considered in a limiting sense, as it is understood that the present invention is in no way limited to only the embodiments illustrated. For example, while FIGs. 1-11 illustrate an embodiment in accordance with the present invention that is directed to filtering adult content on the internet within a web browser, other embodiments can be directed to adult users. For example, in some embodiments of the present invention, content screening and or regulation is directed in a topical manner, such as all content related to a specific interest and related topics. Referring now to FIG. 1, a schematic diagram illustrating a browser client 102 requesting a web page over the internet 104 from a requested server 106, wherein the browser client 102 also accesses remote filter databases 108, 110, 112 at remote servers 114. 116 to help filter adult content from the requested web page. FIG. 2 is a block diagram of the browser client's computer 102 shown in FIG. 1. The browser client 102 includes a CPU 202, a ROM 204, a RAM 206, an Internet interface 208, a non-volatile memory 210, an input device 212, and a display 214. The browser client 102 provides for a computer set-up that can run specific software to browse the Internet.
Referring now to FIG. 3, a block diagram of one embodiment of the non-volatile memory module 210 located within the browser client computer 102 of FIG. 2 is shown. The non-volatile memory 206 includes an installer module 302, a web browser 304, an email module 306, a chat module 308, an animation module 310, and a local filter database 312. The installer module 302 is used to install specific web browsing software that allows the web browser to filter material from requested web pages. The web browser 304 is an Internet web browser programmed to filter content from requested web pages. The email module 306, chat module 308, and animation module 310 are additional features that can be incorporated with the web browser 304 in order to provide enhanced functionality for a user using the web browser 304. It is possible to incorporate some of the new filtering techniques described
herein to email and chat features incorporated with the web browser 304. The local filter database 312 contains information that helps filter content from web pages and is discussed in conjunction with FIG. 4.
FIG. 4 is a schematic block diagram illustrating the web browser 304 and local filter database 312 shown in the non-volatile memory module 210 of FIG. 3, and how the web browser 304 connects with a remote filter database 400. The web browser 304 includes an Internet browsing engine 402 connected to a filtering engine 404. The Internet browsing engine 402 passes requests to read a web page through the filtering engine 404. The filtering engine 404 analyzes the contents of the web page by accessing and utilizing information contained in the local filter database 312 and the remote filter database 400. In this instance, the web browser 304 is programmed to work interactively with the filtering engine 404. An example of a web browser programmed to work interactively with a filtering engine is a SurfMonkey™ browser made available by SurfMonkey.com, Inc. of Campbell, California. The filtering engine 404 can also be programmed as an add-on to work interactively with other existing web browsers such as Netscape Navigator® and Microsoft Internet Explorer®.
The remote filter database 400 includes remotely accessed databases (as shown in FIG. 1), namely a domain white list 108, an URL gray list 110, and an URL black list 112. The remote filter database 400 can include filters from various independent sources such as Surf Watch®. This provides flexibility in incorporating established filter databases and to help provide quality filters for use with the filtering engine 404.
The domain white list 108 includes a database of acceptable domain names for viewing by the web browser 304. The URL gray list 110 includes a database of web pages that contain a small number of questionable material that may need to be filtered by the filtering engine 404 before being displayed in the web browser 304. The URL black list 112 includes a database of web pages that would be fully blocked by the web browser 304.
Within the local filter database 312 located on the browser client's computer 102, the local domain white list 406 includes a database of acceptable domain names. The local domain white list 406 is a list of acceptable domain names for viewing as defined by the remote domain white list 108. The local URL black list 408 includes a database of unacceptable web pages that were defined by a supervisory user to be unacceptable or were previously found to be unacceptable by the filtering engine 404.
The local URL white list 410 includes a database of acceptable web pages that were added by a supervisory user to be acceptable pages for viewing, or were previously found to be acceptable by the filtering engine 404 during the current web browsing session. The web pages in the local URL white list 410 that were found to be acceptable by the filtering engine 404 during the web browsing session are deleted after the web browsing session is over. The acceptable web pages in the URL white list 410 defined by a supervisory user remain in the database for use with future web browsing sessions.
The local word gray list 412 is a database of questionable words that may need to be filtered from the web page. Examples of gray list words would include words that may or may not be offensive depending on how they are used and in what context. The local word black list 414 is a database of words that are unacceptable and would need to filtered or blocked accordingly.
Referring now to FIG. 5, a flowchart of a method for a supervisor to add or remove user limitations for web browsing is shown. At step 500 a supervisor begins to log into the web browser security controls. Step 502 determines if the person logging into the security controls feature is an authorized user, such as a parent. If the person logging in does not supply the correct password, then at step 504 access is denied to the supervisory security controls. If the correct password is supplied, then at step 506 the supervisor can add or remove specific URLs or web pages from the local domain white list 406, the local URL black list 408, and the local URL white list 410. The supervisor can also add or remove words from the local word gray list 412 and the local word black list 414. If at step 508, the supervisor has finished editing the local database lists, then at step 510 the supervisory controlling ends, otherwise, at step 506, the supervisor can continue to edit the local database lists.
Referring now to FIG. 6, a flowchart depicting the manner in which a web page is filtered is shown. At step 600 a user begins using the web browser with the filtering engine. At step 602, the user requests to view a specific web page. If at step 604 it is determined that the security setting for filtering web pages is off, then at step 606 the web page is displayed to the user and at step 608 the filtering process ends. If at step 604 the security setting for filtering web pages is on, then the filtering process continues at step 610 wherein a remote domain white list 108 is accessed over the Internet and is copied over to the local domain white list 406 that is resident on the user's computer. Next at step 612, separate processes 614, 616 begin and are shown in FIGS 7 and 8.
FIG. 7 is a flowchart depicting the method of filtering continued from process A 614 in FIG. 6. At step 700 the web page requested by the user is initiated to the server and at step 702 the web page is downloaded into a hidden browser window that prohibits the user from seeing the web page at this time. Then at step 704 process A is consolidated with process B and continue on FIG. 1 1.
FIG. 8 is a flowchart depicting the method of filtering continued from process B 616 in FIG. 6. At step 800, it is determined if the requested web page is in the local domain white list 406. If at step 802 it is determined that the web page is on the local domain white list 406 then at step 704 process B is consolidated with process A and continues at FIG. 11. However, if the web page is not on the local domain white list 406 then at step 804 it is determined whether the requested web page is in the local URL black list 408. If at step 806 the web page is found in the local URL black list 408, then at step 808 the web page is stopped from being downloaded and continues at step A in FIG. 9.
If the web page URL is not in the local URL black list 408, then at step 810 it is determined if the web page is in the local URL white list 410. If at step 812 the web page URL is found in the local URL white list, then at step 704 process B is consolidated with process A and continues at FIG. 11. If at step 812 the web page is not found in the local URL white list, then at step 814 it is determined if the web page URL is in a remote URL gray list 110. If at step 816 the web page is found in the remote URL gray list 110 then at step 704 process B is consolidated with process A and continues at FIG. 11. If the web page is found in the remote URL gray list 110, then a search for the web page is the remote URL black list 112 is bypassed. The remote URL gray list 110 can include potentially acceptable web pages that may have been placed on the remote URL black list 112. The web pages listed on the remote URL gray list 110 may only require filtering of some words, as is described in further detail in conjunction with FIG. 11.
If the web page is not found in the remote URL gray list 110, then at step 820 it is determined if the web page URL is in the remote URL black list 112. If at step 822 the web page is not found in the remote URL black list 112 then at step 704 process B is consolidated with process A and continues at FIG. 11. However, if at step 822 the web page is found in the remote URL black list, then at step 824 the web page is stopped from being downloaded and continues at step B in FIG. 10.
Referring now to FIG. 9, as referenced from step A 808 in FIG. 8, the web page filtering continues. At step 900 the web page is stopped from being downloaded, then at step
902 a page is shown to the user indicating that the selected web page is blocked from viewing since it was found in the local URL black list 408. Next at step 904, it is determined if the web page URL is in the remote URL black list 1 12. If the web page is not in the remote URL black list 1 12, then at step 908 the web page URL is removed from the local URL black list 408 since this web page is no longer black listed by the remote URL black list 112. Alternatively, if the page URL was specifically entered by a supervisor into the remote URL black list, then the web page URL would not be removed from the local URL black list. If at step 906 the web page is found in the remote URL black list, then at step 910 the filtering process ends.
Referring now to FIG. 10, a flowchart depicting the method of filtering continued from Step B in FIG. 8 is shown, wherein the requested web page URL was also found in the remote URL black list 112. At step 1000 the web page is stopped from being downloaded, then at step 1002 a page is shown to the user indicating that the selected web page is blocked from viewing since it was found in the remote URL black list 112. Next at step 1004 the web page URL is added to the local URL black list 410 residing on the user's computer. Then at step 1006 it is determined if the web page URL is in the local URL white list 410. If the web page is found in the local URL white list 410, then at step 1010 the web page URL is removed from the local URL white list 410 since this page is no longer a valid page for viewing. If at step 1008 the web page is not found in the local URL white list, then at step 1012 the filtering process ends. Referring now to FIG. 11 , a flowchart depicting the method of filtering continued from consolidated concurrent processes A and B 704 in FIG. 7 and FIG. 8 is shown. At step 1100 the requested web page is added to the local URL white list 410 since the web page was either: a) found in the local domain white list 406; b) found in the local URL white list 410; c) found in the remote URL gray list 110; or d) not found in the remote URL black list. Next at step 1102 all the words in the web page that are found in the local word black list 414 are replaced by blocking characters, such as the number sign (#). At step 1104 the number of black list words is counted. If at step 1106 it is determined that the number of black list words exceeds a certain threshold limit, then at step 1108 the web page is added to the local URL black list 408. Excellent results can be obtained when the threshold limit is set to 10 words. Next at step 1110 a page is shown to the user indicating that the selected web page is blocked from viewing since too many words in the black list were found on the requested web page, and at step 1012 the filtering process ends.
If at step 1106 the number of words does not exceed the threshold then at step 1114 it is determined if at least one black list word was found. If no black list words were found, then at
step 11 16 the filtered web page is displayed and at step 1 1 18 the filtering process ends. If at step 1 114 at least one black list word was found, then at step 1 120 all the words in the web page found in the local word gray list 412 are replaced by blocking characters, such as the number sign (#). Then at step 1122 the filtered web page is displayed to the user and at step 1124 the filtering process ends.
In order to improve performance and speed of the filtering process discussed herein, various modifications to provide a fast and reliable filtering system can be done. For example, the filtering of a web page can be separated into multiple filtering processes. As a web page is downloaded from the Internet, then information is send from the server to the client computer in packets. The filtering process can be performed separately on each packet as the web page is being downloaded from the Internet. Additional modifications include adjusting the threshold word limit discussed earlier.