IP Library Granted Patent US 11,494,460
Granted Patent B2
US 11,494,460 · App. 16/813,550 · Granted Nov 8, 2022

Internet-based proxy service to modify internet responses

Inventors: Lee Hahn Holloway (Santa Cruz, CA); Matthew Browning Prince (San Francisco, CA); Matthieu Philippe François Tourne (San Francisco, CA)
Assignee: CLOUDFLARE, INC.
G06F16/958G06F15/16G06F16/95G06F21/00G06F21/552G06F40/14G06F40/143G06Q10/107G06Q30/0241G06Q30/0251G06Q30/0277H04L47/745H04L51/42H04L61/4511H04L61/5007H04L63/0236H04L63/0245H04L63/0254H04L63/0281H04L63/083H04L63/0861H04L63/102H04L63/126H04L63/1416H04L63/1433H04L63/1441H04L63/1458H04L63/1466H04L67/02H04L67/146H04L67/56H04L67/561H04L67/568H04L69/40H04L61/59
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 11,494,460
App. No.
16/813,550
Granted
Nov 8, 2022
Kind
B2
Abstract

A proxy server receives from a client device a request for a network resource that is hosted at an origin server for a domain. The request is received at the proxy server as a result of a DNS request for the domain resolving to the proxy server. The origin server is one of multiple origin servers that belong to different domains that resolve to the proxy server and are owned by different entities. The proxy server retrieves the requested network resource. The proxy server determines that the requested resource is an HTML page, automatically modifies the HTML page, and transmits the modified HTML page to the client device.

Claims (72)

1. A method in a proxy server to modify Internet responses, comprising:

receiving, from a client device, a request for a network resource that is hosted at an origin server for a domain, wherein the request is received at the proxy server as a result of a DNS (Domain Name System) record retrieved in response to the request for the domain pointing to a CNAME that corresponds with the proxy server, and wherein the origin server is one of a plurality of origin servers that belong to different domains that resolve to the proxy server and are owned by different entities;

retrieving the requested network resource;

determining that the requested network resource is an HTML (HyperText Markup Language) page;

determining that the request triggers one or more modification rules, wherein the modification rules are triggered based on characteristics of a user associated with the request, the characteristics of the user including an IP address, a threat score, and a geographic location;

determining modifications to the HTML page based on the one or more triggered modification rules, the modifications including at least one of excluding content from the HTML page and obfuscating content on the HTML page;

automatically modifying the HTML page based on the one or more triggered modification rules; and

transmitting the modified HTML page to the client device.

2. The method of claim 1 , wherein retrieving the requested network resource includes performing the following:

determining whether the requested network resource is available in cache;

responsive to a determination that the requested network resource is not available in cache, performing the following:

transmitting the request to the origin server, and

receiving the network resource from the origin server; and

responsive to a determination that the requested network resource is available in cache, accessing the cache to retrieve the requested network resource.

3. The method of claim 1 , wherein automatically modifying the HTML page includes automatically adding one or more scripts that perform one or more of: adding content to the HTML page and modifying content included in the HTML page.

4. The method of claim 3 , wherein adding the one or more scripts includes adding to the HTML page one or more statistics scripts that include one or more of a tracking user statistics script and a tracking page performance statistics script.

5. The method of claim 1 , wherein automatically modifying the HTML page includes performing the following:

adding to the HTML page one or more of:

a trap email address that is an email address that is not used for any real email and is uniquely identifiable for the IP address associated with the request, wherein the trap email address is added such that it is hidden from a rendered view of the HTML page while being capable of being read and used by bots that scan a source of the HTML page, and wherein receipt of an email message at the trap email address is an indication that a visitor associated with the request is a bot; and

a trap form that is a form that allows submission of information that is not used for any real communication and is uniquely identifiable for the IP address associated with the request, wherein the trap form is added such that it is hidden from a rendered view of the HTML page while being capable of being read and used by bots that scan a source of HTML page, and wherein receipt of submitted information through the trap form is an indication that the visitor is a bot.

6. The method of claim 1 , wherein automatically modifying the HTML page includes performing the following:

scanning the HTML page for one or more advertisement token; and

responsive to a determination that the HTML page includes an advertisement token, performing the following:

determining a size and shape of an advertisement corresponding to the advertisement token; and

modifying the HTML page to cause a replacement advertisement of a similar size and shape to replace the advertisement corresponding to the advertisement token.

7. The method of claim 6 , wherein the replacement advertisement is chosen based on one or more characteristics associated with the request including one or more of: geographic location based on an IP address of the request, operating system type, date of the request, time of the request, and the domain.

8. The method of claim 6 , wherein automatically modifying the HTML page to cause the replacement advertisement to replace the advertisement corresponding to the advertisement token includes creating a reference to the replacement advertisement that is stored on an external server.

9. The method of claim 6 , wherein automatically modifying the HTML page to cause the replacement advertisement to replace the advertisement corresponding to the advertisement token includes embedding raw byte data of the replacement advertisement directly in the HTML page such that when loaded by a client network application of the client device, the replacement advertisement will be displayed on a rendered HTML page without querying an external website for the advertisement.

10. A proxy server to modify Internet responses, comprising:

a memory to store instructions;

a processor coupled with the memory to process the stored instructions to:

receive, from a client device, a request for a network resource that is hosted at an origin server for a domain, wherein the request is received at the proxy server as a result of a DNS (Domain Name System) record retrieved in response to the request for the domain pointing to a CNAME that corresponds with the proxy server, and wherein the origin server is one of a plurality of origin servers that belong to different domains that resolve to the proxy server and are owned by different entities;

retrieve the requested network resource;

determine that the requested network resource is an HTML (HyperText Markup Language) page;

determine that the request triggers one or more modification rules, wherein the modification rules are triggered based on characteristics of a user associated with the request, the characteristics of the user including an IP address, a threat score, and a geographic location;

determining modifications to the HTML page based on the one or more triggered modification rules, the modifications including at least one of excluding content from the HTML page and obfuscating content on the HTML page;

automatically modify the HTML page based on the one or more triggered modification rules; and

transmit the modified HTML page to the client device.

11. The proxy server of claim 10 , wherein retrieve the requested network resource includes the processor to process the stored instructions to:

determine whether the requested network resource is available in cache;

responsive to a determination that the requested network resource is not available in cache, perform the following:

transmit the request to the origin server, and

receive the network resource from the origin server; and

responsive to a determination that the requested network resource is available in cache, access the cache to retrieve the requested network resource.

12. The proxy server of claim 10 , wherein automatically modify the HTML page includes the processor to process the stored instructions to automatically add one or more scripts that perform one or more of: add content to the HTML page and modify content included in the HTML page.

13. The proxy server of claim 12 , wherein the one or more scripts added to the HTML page include one or more of a tracking user statistics script and a tracking page performance statistics script.

14. The proxy server of claim 10 , wherein automatically modify the HTML page includes the processor to process the stored instructions to perform the following:

add to the HTML page one or more of:

a trap email address that is an email address that is not used for any real email and is uniquely identifiable for an IP address associated with the request, wherein the trap email address is to be added such that it is hidden from a rendered view of the HTML page while being capable of being read and used by bots that scan a source of the HTML page, and wherein receipt of an email message at the trap email address is an indication that a visitor associated with the request is a bot; and

a trap form that is a form that allows submission of information that is not used for any real communication and is uniquely identifiable for the IP address associated with the request, wherein the trap form is to be added such that it is hidden from a rendered view of the HTML page while being capable of being read and used by bots that scan a source of HTML page, and wherein receipt of submitted information through the trap form is an indication that the visitor is a bot.

15. The proxy server of claim 10 , wherein automatically modify the HTML page includes the processor to process the stored instructions to perform the following:

scan the HTML page for one or more advertisement tokens; and

responsive to a determination that the HTML page includes an advertisement token, perform the following:

determine a size and shape of an advertisement corresponding to the advertisement token; and

modify the HTML page to cause a replacement advertisement of a similar size and shape to replace the advertisement corresponding to the advertisement token.

16. The proxy server of claim 15 , wherein replacement of the advertisement is chosen based on one or more characteristics associated with the request including one or more of: geographic location based on an IP address of the request, operating system type, date of the request, time of the request, and the domain.

17. The proxy server of claim 15 , wherein modification of the HTML page to cause the replacement of the advertisement includes the processor to process the stored instructions to create a reference to the replacement advertisement that is stored on an external server.

18. The proxy server of claim 15 , wherein modification of the HTML page to cause the replacement of the advertisement includes the processor to process the stored instructions to embed raw byte data of the replacement advertisement directly in the HTML page such that when loaded by a client network application of the client device, the replacement advertisement will be displayed on a rendered HTML page without querying an external website for the advertisement.

19. A non-transitory machine-readable storage medium that provides instructions that, when executed by a processor of a proxy server, cause said processor to perform operations comprising:

receiving, from a client device, a request for a network resource that is hosted at an origin server for a domain, wherein the request is received at the proxy server as a result of a DNS (Domain Name System) record retrieved in response to the request for the domain pointing to a CNAME that corresponds with the proxy server, and wherein the origin server is one of a plurality of origin servers that belong to different domains that resolve to the proxy server and are owned by different entities;

retrieving the requested network resource;

determining that the requested network resource is an HTML (HyperText Markup Language) page;

determining that the request triggers one or more modification rules, wherein the modification rules are triggered based on characteristics of a user associated with the request, the characteristics of the user including an IP address, a threat score, and a geographic location;

determining modifications to the HTML page based on the one or more triggered modification rules, the modifications including at least one of excluding content from the HTML page and obfuscating content on the HTML page;

automatically modifying the HTML page based on the one or more triggered modification rules; and

transmitting the modified HTML page to the client device.

20. The non-transitory machine-readable storage medium of claim 19 , wherein retrieving the requested network resource includes performing the following:

determining whether the requested network resource is available in cache;

responsive to a determination that the requested network resource is not available in cache, performing the following:

transmitting the request to the origin server, and

receiving the network resource from the origin server; and

responsive to a determination that the requested network resource is available in cache, accessing the cache to retrieve the requested network resource.

Assignments (2)
SECURITY INTEREST Recorded May 20, 2024
From: CLOUDFLARE, INC.
To: CITIBANK, N.A.
Reel/Frame 067472/0246 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2020
From: HOLLOWAY, LEE HAHN; PRINCE, MATTHEW BROWNING; TOURNE, MATTHIEU PHILIPPE FRANÇOIS
To: CLOUDFLARE, INC.
Reel/Frame 052058/0978 →
Continuity (5)
Continuation 15425711 · Feb 6, 2017
Continuation 13251004 · Sep 30, 2011
Continuation 12939923 · Nov 4, 2010
Provisional Application 61397721 · Apr 1, 2010
Related Publication 20200210501A1 · Jul 2, 2020
Cited By (1)
US 12,407,754