IP Library Granted Patent US 12,519,792
Granted Patent B2
US 12,519,792 · App. 17/691,574 · Granted Jan 6, 2026

Internet access filtering systems and methods

Inventors: Marco Angelo Suson (Valencia, CA); Michael Benjamin Higgins (Newberg, OR); Nathan Victor Bak (Portland, OR)
Assignee: Circle Media Labs Inc.
H04L63/101H04L63/20
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,519,792
App. No.
17/691,574
Granted
Jan 6, 2026
Kind
B2
Abstract

Methods of filtering comprise aggregating a plurality of filter rulesets to produce an active aggregated filter ruleset (F A ) having F A lists of allowed and blocked platforms, and processing a platform access request through the F A . The processing includes blocking the request if the requested platform is in the F A list of blocked platforms and allowing the request if the requested platform is in the F A list of allowed platforms. Methods of aggregating filter rulesets include combining a lowest priority filter ruleset (F 1 ) with a second lowest priority filter ruleset (F 2 ), which includes removing any platforms of an F 1 list of blocked platforms from an F 1 list of allowed platforms, adding an F 2 list of allowed platforms to the F 1 list of allowed platforms, removing any platforms of the F 2 list of allowed platforms from the F 1 list of blocked platforms, and adding the F 1 and F 2 lists of blocked platforms.

Claims (67)

1 . A computing device implemented method for filtering internet access requests, the method comprising:

receiving a request to access a requested platform;

aggregating a plurality of filter rulesets in a hierarchical, priority-ordered combination to produce an active aggregated filter ruleset, wherein each filter ruleset of the plurality of filter rulesets is assigned a respective priority and comprises a respective list of allowed platforms, a respective list of blocked platforms, a respective list of allowed platform categories, and a respective list of blocked platform categories; and wherein the active aggregated filter ruleset comprises a list of allowed platforms, a list of blocked platforms, a list of allowed platform categories, and a list of blocked platform categories that are created by the hierarchical, priority-ordered combination of the lists of allowed platforms, the lists of blocked platforms, the lists of allowed platform categories, and lists of blocked platform categories of the plurality of filter rulesets;

each platform defining a unique digital destination that is accessed from a user device and which requires internet access; each platform category defining a type of content that is accessed through a platform, wherein a platform category comprises at least two platforms;

processing the request through the active aggregated filter ruleset, the processing comprising:

determining if the requested platform is in the list of blocked platforms;

blocking the request in response to determining that the requested platform is in the list of blocked platforms;

determining if the requested platform is in the list of allowed platforms in response to determining that the requested platform is not in the list of blocked platforms;

allowing the request in response to determining that the requested platform is in the list of allowed platforms;

determining if a category for the requested platform is in the list of blocked platform categories in response to determining that the requested platform is not in the list of allowed platforms;

blocking the request in response to determining the category for the requested platform is in the list of blocked platform categories;

determining if the category for the requested platform is in a list of allowed platform categories in response to determining if the category for the requested platform is not in the list of blocked platform categories;

allowing the request in response to determining the category for the requested platform is in a list of allowed platform categories; and

blocking the request in response to determining the category for the requested platform is not in a list of allowed platform categories.

2 . The method of claim 1 , wherein the plurality of filter rulesets comprises N filter rulesets, wherein the aggregating comprises:

combining a first lowest priority filter ruleset (F1) of the plurality of filter rulesets with a second lowest priority filter ruleset (F2) of the plurality of filter rulesets to produce an aggregated filter ruleset (Fe) having an Fe list of allowed platforms and an Fe list of blocked platforms, wherein the combining comprises:

removing any blocked platforms of the F1 list of blocked platforms from the F1 list of allowed platforms and adding all allowed platforms of the F2 list of allowed platforms to the F1 list of allowed platforms to create the Fe list of allowed platforms;

removing any allowed platforms of the F2 list of allowed platforms from the F1 list of blocked platforms and adding all blocked platforms of the F2 list of blocked platforms to the F1 list of blocked platforms to create the Fe list of blocked platforms.

3 . The method of claim 1 , wherein the plurality of filter rulesets comprises N filter rulesets, wherein the aggregating comprises:

combining a first lowest priority filter ruleset (F1) of the plurality of filter rulesets with a second lowest priority filter ruleset (F2) of the plurality of filter rulesets to produce an aggregated filter ruleset (Fe) having an Fe list of allowed platforms, an Fe list of blocked platforms, an Fe list of allowed platform categories, and an Fe list of blocked platform categories, wherein the combining comprises:

removing any blocked platforms of the F1 list of blocked platforms from the F1 list of allowed platforms and adding all allowed platforms of the F2 list of allowed platforms to the F1 list of allowed platforms to create the Fe list of allowed platforms;

removing any allowed platforms of the F2 list of allowed platforms from the F1 list of blocked platforms and adding all blocked platforms of the F2 list of blocked platforms to the F1 list of blocked platforms to create the Fe list of blocked platforms;

removing any blocked platform categories of the F1 list of blocked platform categories from the F1 list of allowed platform categories and adding all allowed platform categories of the F2 list of allowed platform categories to the F1 list of allowed platform categories to create the Fe list of allowed platform categories; and

removing any allowed platform categories of the F2 list of allowed platform categories from the F1 list of blocked platform categories and adding the all blocked platform categories of the F2 list of blocked platform categories to the F1 list of blocked platform categories to create an Fe list of blocked platform categories.

4 . The method of claim 1 , further comprising obtaining the platform category of the requested platform, wherein the obtaining comprises querying a platform categorization engine for the platform category of the requested platform.

5 . The method of claim 1 , further comprising identifying the requested platform, wherein the identifying is performed prior to the processing, and wherein the identifying comprises querying a platform database for an identity of the requested platform.

6 . The method of claim 1 , wherein the receiving comprises receiving the platform access request from a user device, wherein the method further comprises selecting an appropriate stack of filter rulesets that is assigned to the user device from among a plurality of stacks of filter rulesets, wherein the appropriate stack of filter rulesets comprises the plurality of filter rulesets.

7 . The method of claim 1 , further comprising managing the plurality of filter rulesets, wherein the managing comprises assigning the respective priority to each filter ruleset of the plurality of filter rulesets.

8 . The method of claim 1 , further comprising managing the plurality of filter rulesets, wherein the managing comprises storing the plurality of filter rulesets in a non-aggregated state, wherein the storing is performed prior to the processing.

9 . The method of claim 1 , further comprising receiving a new platform access request and repeating the aggregating and the processing respective to the new platform access request.

10 . A non-transitory computer-readable storage media comprising instructions that, when executed by a computing device, cause the computing device to perform a method comprising:

receiving a request to access a requested platform;

aggregating a plurality of filter rulesets in a hierarchical, priority-ordered combination to produce an active aggregated filter ruleset, wherein each filter ruleset of the plurality of filter rulesets is assigned a respective priority and comprises a respective list of allowed platforms, a respective list of blocked platforms, a respective list of allowed platform categories, and a respective list of blocked platform categories; and wherein the active aggregated filter ruleset comprises a list of allowed platforms, a list of blocked platforms, a list of allowed platform categories, and a list of blocked platform categories that are created by the hierarchical, priority-ordered combination of the lists of allowed platforms, the lists of blocked platforms, the lists of allowed platform categories, and lists of blocked platform categories of the plurality of filter rulesets;

each platform defining a unique digital destination that is accessed from a user device and which requires internet access; each platform category defining a type of content that is accessed through a platform, wherein a platform category comprises at least two platforms;

processing the request through the active aggregated filter ruleset, the processing comprising:

determining if the requested platform is in the list of blocked platforms;

blocking the request in response to determining that the requested platform is in the list of blocked platforms;

determining if the requested platform is in the list of allowed platforms in response to determining that the requested platform is not in the list of blocked platforms;

allowing the request in response to determining that the requested platform is in the list of allowed platforms;

determining if a category for the requested platform is in the list of blocked platform categories in response to determining that the requested platform is not in the list of allowed platforms;

blocking the request in response to determining the category for the requested platform is in the list of blocked platform categories;

determining if the category for the requested platform is in a list of allowed platform categories in response to determining if the category for the requested platform is not in the list of blocked platform categories;

allowing the request in response to determining the category for the requested platform is in a list of allowed platform categories; and

blocking the request in response to determining the category for the requested platform is not in a list of allowed platform categories.

11 . A computing device, comprising a non-transitory computer-readable storage media; and a processing unit configured to execute instructions stored on the non-transitory computer-readable media, the instructions comprising:

receiving a request to access a requested platform;

aggregating a plurality of filter rulesets in a hierarchical, priority-ordered combination to produce an active aggregated filter ruleset, wherein each filter ruleset of the plurality of filter rulesets is assigned a respective priority and comprises a respective list of allowed platforms, a respective list of blocked platforms, a respective list of allowed platform categories, and a respective list of blocked platform categories; and wherein the active aggregated filter ruleset comprises a list of allowed platforms, a list of blocked platforms, a list of allowed platform categories, and a list of blocked platform categories that are created by the hierarchical, priority-ordered combination of the lists of allowed platforms, the lists of blocked platforms, the lists of allowed platform categories, and lists of blocked platform categories of the plurality of filter rulesets;

each platform defining a unique digital destination that is accessed from a user device and which requires internet access; each platform category defining a type of content that is accessed through a platform, wherein a platform category comprises at least two platforms;

processing the request through the active aggregated filter ruleset, the processing comprising:

determining if the requested platform is in the list of blocked platforms;

blocking the request in response to determining that the requested platform is in the list of blocked platforms;

determining if the requested platform is in the list of allowed platforms in response to determining that the requested platform is not in the list of blocked platforms;

allowing the request in response to determining that the requested platform is in the list of allowed platforms;

determining if a category for the requested platform is in the list of blocked platform categories in response to determining that the requested platform is not in the list of allowed platforms;

blocking the request in response to determining the category for the requested platform is in the list of blocked platform categories;

determining if the category for the requested platform is in a list of allowed platform categories in response to determining if the category for the requested platform is not in the list of blocked platform categories;

allowing the request in response to determining the category for the requested platform is in a list of allowed platform categories; and

blocking the request in response to determining the category for the requested platform is not in a list of allowed platform categories.

12 . The method of claim 1 , wherein the aggregating further comprises:

combining a first lowest priority filter ruleset (F1) of the plurality of filter rulesets with a second lowest priority filter ruleset (F2) of the plurality of filter rulesets to produce an aggregated filter ruleset (Fe) having an Fe list of allowed platforms and an Fe list of blocked platforms, wherein the combining comprises:

removing any blocked platforms of the F1 list of blocked platforms from the F1 list of allowed platforms and adding all allowed platforms of the F2 list of allowed platforms to the F1 list of allowed platforms to create the Fe list of allowed platforms;

removing any allowed platforms of the F2 list of allowed platforms from the F1 list of blocked platforms and adding all blocked platforms of the F2 list of blocked platforms to the F1 list of blocked platforms to create the Fe list of blocked platforms; and

repeating the combining for each subsequent filter ruleset in ascending order of priority to produce the active aggregated filter ruleset.

13 . The method of claim 12 , wherein each filter ruleset of the plurality of filter rulesets further comprises:

a respective Fn list of blocked platform categories and a respective Fn list of allowed platform categories, and wherein the combining further comprises:

removing any blocked platform categories of the F1 list of blocked platform categories from the F1 list of allowed platform categories and adding all allowed platform categories of the F2 list of allowed platform categories to the F1 list of allowed platform categories to create an Fe list of allowed platform categories; and

removing any allowed platform categories of the F2 list of allowed platform categories from the F1 list of blocked platform categories and adding all blocked platform categories of the F2 list of blocked platform categories to the F1 list of blocked platform categories to create an Fe list of blocked platform categories.

Assignments (2)
SECURITY INTEREST Recorded Jul 22, 2026
From: CIRCLE MEDIA LABS INC.
To: BANC OF CALIFORNIA
Reel/Frame 075362/0286 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2022
From: SUSON, MARCO ANGELO; HIGGINS, MICHAEL BENJAMIN; BAK, NATHAN VICTOR
To: CIRCLE MEDIA LABS INC.
Reel/Frame 059225/0797 →
Continuity (2)
Provisional Application 63161308 · Mar 15, 2021
Related Publication 20220294790A1 · Sep 15, 2022
References Cited (25)
US 8990223B2 · Melnychenko et al. · 2015 [cited by applicant]
US 9742734B2 · Wood · 2017 [cited by applicant]
US 9992166B2 · Ji et al. · 2018 [cited by applicant]
US 10958674B2 · Tsironis · 2021 [cited by applicant]
US 11030341B2 · LaFever et al. · 2021 [cited by applicant]
US 11165750B1 · H R et al. · 2021 [cited by applicant]
US 20180278678A1 · Weng · 2018 [cited by examiner]
US 20200162890A1 · Spencer et al. · 2020 [cited by applicant]
US 20200401711A1 · Hayes et al. · 2020 [cited by applicant]
US 20200404010A1 · Costante · 2020 [cited by examiner]
US 20210142329A1 · Aparício · 2021 [cited by examiner]
AU 2019101282A4 · 2019 [cited by applicant]
CN 112242981A · 2021 [cited by applicant]
IN 1349MUMNP2013A · 2014 [cited by applicant]
WO WO2012092487A1 · 2012 [cited by applicant]
WO WO2013079115A1 · 2013 [cited by applicant]
WO WO2015076904A2 · 2015 [cited by applicant]
Medvedev, M., Sep. 2023. Research of Approaches to the Effectiveness of Updating Black and White Lists. In International Workshop on Advanced Information Security Management and Applications (pp. 196-202). Cham: Springe… [cited by examiner]
Burton, R. and Rocha, L., Nov. 2019. Whitelists that work: Creating defensible dynamic whitelists with statistical learning. In 2019 APWG Symposium on Electronic Crime Research (eCrime) (pp. 1-10). IEEE. (Year: 2019). [cited by examiner]
English-language machine translation of Chinese Patent Application Publication No. CN112242981A, Jan. 19, 2021. [cited by applicant]
Turner, Brett Ronald. “An Investigation into the Efficacy of URL Content Filtering Systems,” Edith Cowan University. Publication Date: 2021. [cited by applicant]
FortiGuard Labs Web Filter: https://www.fortiguard.com/learnmore#wf. Date Accessed: Jan. 4, 2022. [cited by applicant]
Bark: https://www.bark.us/how/. Date Accessed: Jan. 4, 2022. [cited by applicant]
Net Nanny Internet Filter: https://www.netnanny.com/features/internet-filter/. Date Accessed: Jan. 4, 2022. [cited by applicant]
CurrentWare BrowseControl URL Filtering Software: https://www.currentware.com/products/browsecontrol/url-filter/. Date Accessed: Jan. 4, 2022. [cited by applicant]