IP Library › Granted Patent US 12,598,160
Granted Patent B2
US 12,598,160 · App. 18/145,099 · Granted Apr 7, 2026

Proxy server with dynamic memory buffer

Inventor: Kevin Sanders (Austin, TX)
Assignee: Lightspeed Solutions, LLC
H04L63/0281H04L63/0236H04L67/025
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,598,160
App. No.
18/145,099
Granted
Apr 7, 2026
Kind
B2
Abstract

Aspects of this disclosure improve modification of requested web content by utilizing an expanded memory buffer of a proxy server. A method may include receiving, by a proxy, web content requested by an application of a user device; initializing, by the proxy, a memory buffer of a first size to store a header of the web content; determining, by the proxy, a set of filtering rules associated with the user of the user device; determining, by the proxy, modified web content in accordance with the set of filtering rules, wherein the determining comprises, when the filtering rules specify modification of body content of the web content, performing operations comprising: expanding the memory buffer to a second size larger than the first size. Other aspects are also disclosed.

Claims (71)

1 . A method, comprising:

receiving, by a proxy, web content requested by an application for a user;

initializing, by the proxy, a memory buffer of a first size to store a header of the web content;

determining, by the proxy, a set of filtering rules associated with the user;

determining, by the proxy, modified web content in accordance with the set of filtering rules, wherein the determining comprises, when the filtering rules specify modification of body content of the web content, performing operations comprising:

expanding the memory buffer to a second size larger than the first size based on at least one of a hostname and a URL, wherein the expanding comprises increasing the buffer size based on the body content and based on expected modifications to the body content;

storing the body content in the memory buffer;

modifying the body content based, at least in part, on the set of filtering rules to form modified body content; and

repackaging the modified body content with the header as the modified web content; and

delivering, by the proxy, the modified web content to the application.

2 . The method of claim 1 , wherein determining, by the proxy, a set of filtering rules associated with the user is based, at least in part, on whether the user is authenticated, and comprises at least one of:

retrieving, by the proxy, a set of filtering rules that is specific to the user when the user is authenticated; or

utilizing, by the proxy, a default set of filtering rules when the user is not authenticated.

3 . The method of claim 1 , wherein modifying, by the proxy, the body content of the web content based, at least in part, on the set of filtering rules comprises at least one of:

removing, by the proxy, illegal content;

removing, by the proxy, one or more elements including at least one or more comments, sidebars, or advertisements; or

removing, by the proxy, blacklisted content.

4 . The method of claim 1 , wherein determining the modified body content in accordance with the set of filtering rules comprises:

when the set of filtering rules does not specify modification of the body content:

maintaining the first size of the memory buffer; and

executing the set of filtering rules on only the header stored in the memory buffer.

5 . The method of claim 1 , wherein determining the modified body content does not include injecting a script.

6 . An apparatus, comprising:

a memory storing processor-readable code;

at least one processor coupled to the memory, the at least one processor configured to execute the processor-readable code to cause the at least one processor to perform operations include:

receiving, by a proxy, web content requested by an application for a user;

initializing, by the proxy, a memory buffer of a first size to store a header of the web content;

determining, by the proxy, a set of filtering rules associated with the user;

determining, by the proxy, modified web content in accordance with the set of filtering rules, wherein the determining comprises, when the filtering rules specify modification of body content of the web content, performing operations comprising:

expanding the memory buffer to a second size larger than the first size based on at least one of a hostname and a URL, wherein the expanding comprises increasing the buffer size based on the body content and based on expected modifications to the body content;

storing the body content in the memory buffer;

modifying the body content based, at least in part, on the set of filtering rules to form modified body content; and

repackaging the modified body content with the header as the modified web content; and

delivering, by the proxy, the modified web content to the application.

7 . The apparatus of claim 6 , wherein determining, by the proxy, a set of filtering rules associated with the user is based, at least in part, on whether the user is authenticated, and comprises at least one of:

retrieving, by the proxy, a set of filtering rules that is specific to the user when the user is authenticated; or

utilizing, by the proxy, a default set of filtering rules when the user is not authenticated.

8 . The apparatus of claim 6 , wherein modifying, by the proxy, the body content of the web content based, at least in part, on the set of filtering rules comprises at least one of:

removing, by the proxy, illegal content;

removing, by the proxy, one or more elements including at least one or more comments, sidebars, or advertisements; or

removing, by the proxy, blacklisted content.

9 . The apparatus of claim 6 wherein determining the modified body content in accordance with the set of filtering rules comprises:

when the set of filtering rules does not specify modification of the body content:

maintaining the first size of the memory buffer; and

executing the set of filtering rules on only the header stored in the memory buffer.

10 . The apparatus of claim 6 , wherein determining the modified body content does not include injecting a script.

11 . The apparatus of claim 6 , wherein the at least one processor executes the application and the proxy.

12 . A computer program product, comprising:

a non-transitory computer readable medium storing instructions that, when executed by a processor, cause the processor to perform operations comprising:

receiving, by a proxy, web content requested by an application for a user;

initializing, by the proxy, a memory buffer of a first size to store a header of the web content;

determining, by the proxy, a set of filtering rules associated with the user;

determining, by the proxy, modified web content in accordance with the set of filtering rules, wherein the determining comprises, when the filtering rules specify modification of body content of the web content, performing operations comprising:

expanding the memory buffer to a second size larger than the first size based on at least one of a hostname, and a URL, wherein the expanding comprises increasing the buffer size based on the body content and based on expected modifications to the body content;

storing the body content in the memory buffer;

modifying the body content based, at least in part, on the set of filtering rules to form modified body content; and

repackaging the modified body content with the header as the modified web content; and

delivering, by the proxy, the modified web content to the application.

13 . The computer program product of claim 12 , wherein determining, by the proxy, a set of filtering rules associated with the user is based, at least in part, on whether the user is authenticated, and comprises at least one of:

retrieving, by the proxy, a set of filtering rules that is specific to the user when the user is authenticated; or

utilizing, by the proxy, a default set of filtering rules when the user is not authenticated.

14 . The computer program product of claim 12 , wherein modifying, by the proxy, the body content of the web content based, at least in part, on the set of filtering rules comprises at least one of:

removing, by the proxy, illegal content;

removing, by the proxy, one or more elements including at least one or more comments, sidebars, or advertisements; or

removing, by the proxy, blacklisted content.

15 . The computer program product of claim 12 , wherein determining the modified body content in accordance with the set of filtering rules comprises:

when the set of filtering rules does not specify modification of the body content:

maintaining the first size of the memory buffer; and

executing the set of filtering rules on only the header stored in the memory buffer.

16 . The computer program product of claim 12 , wherein determining the modified body content does not include injecting a script.

17 . The computer program product of claim 12 , wherein the instructions further cause the at least one processor to execute the application for the user.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 22, 2023
From: SANDERS, KEVIN
To: LIGHTSPEED SOLUTIONS, LLC
Reel/Frame 063065/0083 →
Continuity (1)
Related Publication 20240214355A1 · Jun 27, 2024
References Cited (31)
US 8224950B2 · Humes · 2012 [cited by examiner]
US 9154479B1 · Sethi · 2015 [cited by applicant]
US 9667603B2 · Sandoval et al. · 2017 [cited by applicant]
US 10284526B2 · Moore · 2019 [cited by applicant]
US 10749926B2 · Whitt · 2020 [cited by examiner]
US 20090178061A1 · Sandoval et al. · 2009 [cited by applicant]
US 20100153544A1 · Krassner et al. · 2010 [cited by applicant]
US 20100164970A1 · Lyons · 2010 [cited by examiner]
US 20140115661A1 · Nah · 2014 [cited by examiner]
US 20140215050A1 · Lu · 2014 [cited by applicant]
US 20140337147A1 · DaSilva · 2014 [cited by examiner]
US 20140337918A1 · Siddiqi et al. · 2014 [cited by applicant]
US 20140351573A1 · Martini · 2014 [cited by applicant]
US 20160119284A1 · Kim · 2016 [cited by applicant]
US 20160285832A1 · Petrov et al. · 2016 [cited by applicant]
US 20160330230A1 · Reddy et al. · 2016 [cited by applicant]
US 20170237766A1 · Mattson et al. · 2017 [cited by applicant]
US 20180012256A1 · Napchi et al. · 2018 [cited by applicant]
US 20190288985A1 · Chambers et al. · 2019 [cited by applicant]
US 20190327338A1 · Meadors et al. · 2019 [cited by applicant]
JP H05108565A · 1993 [cited by examiner]
WO WO2002084512 · 2002 [cited by applicant]
WO WO2014096463A1 · 2014 [cited by examiner]
Akbas, E., “Next Generation Filtering: Offline Filtering Enhanced Proxy Architecture for Web Content Filtering”, IEEE, pp. 1-4, 2008. [cited by applicant]
Anonymous: “Google Analytics—Wikipedia”, Feb. 22, 2018, XP055621150, Retrieved from the Internet: URL: https://en.wikipedia.org/w/index.php?title=GoogleAnalytics&oldid=827025596. [cited by applicant]
Durieux, T. et al., “Fully Automated HTML and Javascript Rewriting for Constructing a Self-healing Web Proxy”, arxiv.org, Cornell University Library, Mar. 23, 2018. [cited by applicant]
Henkel, Z., “ISP Advertisement Injection—CMA Communications” Mar. 29, 2013, XP055597666, Retrieved from the Internet: URL: https://zmhenkel.blogspot.com/2013/03/isp-advertisement-injeciton-cma.html. [cited by applicant]
Hruska, F. “Nginx reverse proxy with code injection—FHR's Blog”, Sep. 20, 2017, XP055620406, Retrieved from the Internet: URL: https://blog.fhrnet.eu/2017/09/20/nginx-reverse-proxy-with-code-injection/. [cited by applicant]
Malhotra, P., “Injecting Javascript in HTML Content Using MITM Proxy”, Jun. 8, 2015, XP055597689, Retrieved from the Internet: URL: http://pankajmalhotra.com/injecting-javascript-in-HTML-Content-Using-MITM-Proxy. [cited by applicant]
Tsirantonakis et al., “A Large-scale Analysis of Content Modification by Open HTTP Proxies”, Proceedings 2018 Network and Distributed System Security Symposium, Feb. 18, 2018, XP055620768, Reston, VA. [cited by applicant]
Yakushev, R., “Using Outbound Rules to add Web Analytics tracking code: Microsoft Docs”, Jul. 16, 2009, XP055621154, Retrieved from the Internet: URL: http://docs.microsoft.com/en-us/lis/extensions/url-rewrite-module/us… [cited by applicant]