IP Library Granted Patent US 10,904,227
Granted Patent B2
US 10,904,227 · App. 15/839,494 · Granted Jan 26, 2021

Web form protection

Inventors: Nicholas Thomas Sullivan (San Francisco, CA); Zi Lin (San Francisco, CA); Rajeev Devendra Sharma (San Francisco, CA)
Assignee: CLOUDFLARE, INC.
H04L63/0435G06F16/958H04L9/0819H04L9/14H04L63/0281H04L63/061H04L63/10H04L67/2842H04L63/168H04L2209/24
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 10,904,227
App. No.
15/839,494
Granted
Jan 26, 2021
Kind
B2
Abstract

A request for a web page is received and the requested web page is retrieved. The web page is modified to obfuscate a set of form attribute values into a corresponding set of obfuscated form attribute values. The modified web page is transmitted to the requesting device. The modified web page does not include the set of form attribute values in their original form. Form data for the set of obfuscated form attribute values is received from the requesting device. The set of obfuscated form attribute values is deobfuscated thereby revealing the original set of form attribute values. The form data for the set of original form attribute values is further processed.

Claims (81)

1. A method in a proxy server that is coupled with an origin server, the method comprising:

receiving, from a requesting device, a request for a web page of the origin server;

retrieving the requested web page;

determining that the retrieved web page includes a web form that includes a set of one or more form attribute values for obfuscation;

modifying the retrieved web page by obfuscating the set of one or more form attribute values into a corresponding set of one or more obfuscated form attribute values, wherein obfuscating the set of one or more form attribute values includes replacing each of the set of one or more form attribute values with a pseudorandom or random value;

storing, in a data structure on the proxy server, an association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values;

transmitting the modified web page having the set of one or more obfuscated form attribute values to the requesting device;

receiving, from the requesting device, the set of one or more obfuscated form attribute values and form data corresponding to the set of one or more obfuscated form attribute values;

accessing the data structure to retrieve the stored association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values;

deobfuscating the set of one or more obfuscated form attribute values using the retrieved stored association thereby revealing the set of one or more form attribute values; and

responsive to the deobfuscation, transmitting the form data with the set of one or more form attribute values to the origin server.

2. The method of claim 1 , wherein retrieving the requested web page includes transmitting a request for the web page to the origin server and receiving a response from the origin server that includes the requested web page.

3. The method of claim 1 , wherein retrieving the requested web page includes accessing the requested web page from a cache that is available to the proxy server.

4. The method of claim 1 , wherein modifying the retrieved web page further includes:

modifying a reference to at least one of the set of one or more form attribute values for obfuscation to refer to the corresponding obfuscated form attribute value instead of that at least one of the set of one or more form attribute values for obfuscation.

5. The method of claim 1 , wherein the set of one or more form attribute values includes one or more of the following:

a name form attribute value;

an id form attribute value; and

a class name form attribute value.

6. The method of claim 1 , wherein the set of one or more form attribute values in their original form is not included in the modified web page.

7. The method of claim 1 , further comprising:

storing, in a cookie set by the proxy server, the association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values, wherein the association is encrypted with a key that is not shared with the requesting device; and

wherein deobfuscating the set of one or more obfuscated form attribute values includes,

receiving the cookie from the requesting device,

decrypting the association stored in the cookie using the key, and

accessing the decrypted association to determine the corresponding set of one or more form attribute values.

8. 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 requesting device, a request for a web page of an origin server;

retrieving the requested web page;

determining that the retrieved web page includes a web form that includes a set of one or more form attribute values for obfuscation;

modifying the retrieved web page by obfuscating the set of one or more form attribute values into a corresponding set of one or more obfuscated form attribute values, wherein obfuscating the set of one or more form attribute values includes replacing each of the set of one or more form attribute values with a pseudorandom or random value;

storing, in a data structure on the proxy server, an association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values;

transmitting the modified web page having the set of one or more obfuscated form attribute values to the requesting device;

receiving, from the requesting device, the set of one or more obfuscated form attribute values and form data corresponding to the set of one or more obfuscated form attribute values;

accessing the data structure to retrieve the stored association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values;

deobfuscating the set of one or more obfuscated form attribute values using the retrieved stored association thereby revealing the set of one or more form attribute values; and

responsive to the deobfuscation, transmitting the form data with the set of one or more form attribute values to the origin server.

9. The non-transitory machine-readable storage medium of claim 8 , wherein retrieving the requested web page includes transmitting a request for the web page to the origin server and receiving a response from the origin server that includes the requested web page.

10. The non-transitory machine-readable storage medium of claim 8 , wherein retrieving the requested web page includes accessing the requested web page from a cache that is available to the proxy server.

11. The non-transitory machine-readable storage medium of claim 8 , wherein modifying the retrieved web page further includes:

modifying a reference to at least one of the set of one or more form attribute values for obfuscation to refer to the corresponding obfuscated form attribute value instead of that at least one of the set of one or more form attribute values for obfuscation.

12. The non-transitory machine-readable storage medium of claim 8 , wherein the set of one or more form attribute values includes one or more of the following:

a name form attribute value;

an id form attribute value; and

a class name form attribute value.

13. The non-transitory machine-readable storage medium of claim 8 , wherein the set of one or more form attribute values in their original form is not included in the modified web page.

14. The non-transitory machine-readable storage medium of claim 8 , further comprising:

wherein the non-transitory machine-readable storage medium further stores instructions that, when executed by the processor, cause the processor to perform the following operation:

storing, in a cookie set by the proxy server, the association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values, wherein the association is encrypted with a key that is not shared with the requesting device; and

wherein deobfuscating the set of one or more obfuscated form attribute values includes,

receiving the cookie from the requesting device,

decrypting the association stored in the cookie using the key, and

accessing the decrypted association to determine the corresponding set of one or more form attribute values.

15. A proxy server, comprising:

a set of one or more processors;

a set of one or more non-transitory machine-readable storage mediums that store instructions that, when executed by the set of processors, cause the proxy server to perform the following:

receive, from a requesting device, a request for a web page of an origin server;

retrieve the requested web page;

determine that the retrieved web page includes a web form that includes a set of one or more form attribute values for obfuscation;

modify the retrieved web page by obfuscating the set of one or more form attribute values into a corresponding set of one or more obfuscated form attribute values, wherein obfuscating the set of one or more form attribute values includes replacing each of the set of one or more form attribute values with a pseudorandom or random value;

store, in a data structure on the proxy server, an association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values;

transmit the modified web page having the set of one or more obfuscated form attribute values to the requesting device;

receive, from the requesting device, the set of one or more obfuscated form attribute values and form data corresponding to the set of one or more obfuscated form attribute values;

access the data structure to retrieve the stored association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values;

deobfuscate the set of one or more obfuscated form attribute values using the retrieved stored association thereby revealing the set of one or more form attribute values; and

responsive to the deobfuscation, transmit the form data with the set of one or more form attribute values to the origin server.

16. The proxy server of claim 15 , wherein retrieval of the requested web page includes a transmission of a request for the web page to the origin server and receiving a response from the origin server that includes the requested web page.

17. The proxy server of claim 15 , wherein retrieval of the requested web page includes an access of the requested web page from a cache that is available to the proxy server.

18. The proxy server of claim 15 , wherein modification of the retrieved web page further includes a modification of a reference to at least one of the set of one or more form attribute values for obfuscation to refer to the corresponding obfuscated form attribute value instead of that at least one of the set of one or more form attribute values for obfuscation.

19. The proxy server of claim 15 , wherein the set of one or more form attribute values includes one or more of the following:

a name form attribute value;

an id form attribute value; and

a class name form attribute value.

20. The proxy server of claim 15 , wherein the set of one or more form attribute values in their original form is not included in the modified web page.

21. The proxy server of claim 15 , further comprising:

wherein the non-transitory machine-readable storage medium further stores instructions that, when executed by the processor, cause the processor to perform the following operations:

store, in a cookie set by the proxy server, the association between the set of one or more form attribute values and the corresponding set of one or more obfuscated form attribute values, wherein the association is encrypted with a key that is not shared with the requesting device; and

wherein deobfuscation of the set of one or more obfuscated form attribute values includes performance of the following,

receive the cookie from the requesting device,

decrypt the association stored in the cookie using the key, and

access the decrypted association to determine the corresponding set of one or more form attribute values.

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 Dec 12, 2017
From: SULLIVAN, NICHOLAS THOMAS; LIN, ZI; SHARMA, RAJEEV DEVENDRA
To: CLOUDFLARE, INC.
Reel/Frame 044374/0838 →
Continuity (3)
Continuation 15219139 · Jul 25, 2016
Continuation 14578223 · Dec 19, 2014
Related Publication 20180115534A1 · Apr 26, 2018