9270647

Client/Server Security by an Intermediary Rendering Modified In-Memory Objects

PublishedFebruary 23, 2016
Assigneenot available in USPTO data we have
InventorsJustin Call
Technical Abstract

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

1. A method comprising: intercepting, from a server computer, a first set of instructions that define one or more objects; executing, by a headless browser, the first set of instructions to produce one or more data structures in memory that correspond to the one or more objects; updating the one or more data structures based, at least in part, on a configuration to produce one or more updated data structures; rendering a second set of instructions that are configured to cause a remote client computer, when executed by the remote client computer, to generate the one or more updated data structures in memory on the remote client computer, wherein the second set of instructions are different than the first set of instructions; sending the second set of instructions to the remote client computer; caching the second set of instructions; intercepting a third set of instructions; determining the first set of instructions and the third set of instructions are equivalent; in response to determining the first set of instructions and the third set of instructions are equivalent; sending the second set of instructions to a second remote client computer; wherein the method is performed by one or more computing devices.

2

2. The method of claim 1 comprising: selecting a particular data structure of the one or more data structures based, at least in part, on the configuration; updating the particular data structure.

3

3. The method of claim 1 comprising: selecting a particular data structure of the one or more data structures based, at least on part, on the configuration; rendering the second set of instructions, which are configured to cause the remote client computer, when executed by the remote client computer, to generate the particular data structure, which is not updated, in memory on the remote client computer.

4

4. The method of claim 1 comprising: determining to use one or more polymorphic operations that implement a polymorphic protocol based, at least in part, on the configuration; performing the one or more polymorphic operations on the one or more data structures to produce the one or more updated data structures.

5

5. The method of claim 1 , wherein each object of the one or more objects includes an original identifier, and the method comprising: generating a data structure for each object of the one or more objects, wherein the data structure corresponds to the object and includes the original identifier included in the object; updating the original identifier included in the data structure for each object selected by the configuration to produce a modified identifier and a modified data structure of the one or more updated data structures.

6

6. The method of claim 5 comprising: storing mapping data that maps the modified identifier to the original identifier for each object; intercepting, from the remote client computer, a request that includes one or more modified identifiers; based on the mapping data, determining the original identifier for each modified identifier included in the request; replacing each modified identifier in the request with the original identifier to produce a modified request; sending the modified request to the server computer.

7

7. The method of claim 1 comprising: generating a data structure that corresponds to an object of the one or more objects that includes an attribute, wherein the object is identified in the configuration; removing the attribute from the data structure to produce a modified data structure; generating a new operation, which when performed adds the attribute to the modified data structure; rendering one or more instructions that are configured to cause the remote client computer to generate, when executed by the remote client computer, the modified data structure and subsequently performs the new operation, which adds the attribute to the modified data structure.

8

8. The method of claim 1 , wherein the one or more updated data structures define an updated plurality of objects in a first hierarchy; intercepting, from the server computer, wherein rendering the second set of instructions comprises: rendering a first document with instructions, which when executed by the remote client computer cause the remote client computer to generate the one or more updated data structures that define the updated plurality of objects associated with each other in a second hierarchy, wherein the second hierarchy is different than the first hierarchy; and rendering a second document with instructions that are configured to cause the remote client computer, when executed by the remote client computer, to associate the updated plurality of objects with each other according to the first hierarchy; wherein the second set of instructions comprises the first document and the second document.

9

9. A method comprising: intercepting, from a web server computer, over HTTP, an original HTML document, a set of original Cascading Style Sheets (CSS) codes, and a set of original JavaScript codes that define one or more objects in an original Document Object Model (DOM) and one or more operations that are based, at least in part, on the one or more objects in the original DOM; executing the original HTML document, the set of original CSS codes, and the set of original JavaScript codes by a headless browser to produce one or more data structures in memory that correspond to the one or more objects in the original DOM; updating the one or more data structures based, at least in part, on a configuration to produce one or more updated data structures; rendering a modified HTML document, a set of modified CSS codes, and a set of modified JavaScript codes, which are configured to cause a remote client computer, when processed by the remote client computer, to generate the one or more updated data structures in memory on the remote client computer; wherein the modified HTML document defines a modified DOM that is different than the original DOM; wherein the modified HTML document, the set of modified CSS codes, and the set of modified JavaScript codes are different than the original HTML document, the set of original CSS codes, and the set of original JavaScript codes; generating a DOM mapping between the modified DOM and the original DOM; storing the DOM mapping; sending the modified HTML document, the set of modified CSS codes, and the set of modified JavaScript codes to the remote client computer; intercepting, from the remote client computer, a request based on the modified DOM; translating the request based, at least in part, on the DOM mapping to produce a translated request based on the original DOM; sending the translated request to the web server computer; wherein the method is performed by one or more computing devices.

10

10. The method of claim 9 , wherein the original HTML document, the set of original CSS codes, and the set of original JavaScript codes is generated by the web server computer in response to receiving a first request, and the method comprises: intercepting, from the web server computer, the original HTML document, the set of original CSS codes, and the set of original JavaScript codes in response to a second request; executing the original HTML document, the set of original CSS codes, and the set of original JavaScript codes by the headless browser to produce one or more new data structures in memory that correspond to the one or more objects in the original DOM; updating the one or more new data structures based, at least in part, on the configuration to produce one or more new updated data structures; rendering a new modified HTML document, a set of new modified CSS codes, and a set of new modified JavaScript codes that are configured to cause the remote client computer that sent the second request, when processed by that remote client computer, to generate the one or more new updated data structures in memory on the remote client computer; wherein the new modified HTML document defines a new modified DOM that is different than the modified DOM and the original DOM; wherein the new modified HTML document, the set of new modified CSS codes, and the set of new modified JavaScript codes are different than the modified HTML document, the set of modified CSS codes, and the set of modified JavaScript codes; wherein the new modified HTML document, the set of new modified CSS codes, and the set of new modified JavaScript codes are different than the original HTML document, the set of original CSS codes, and the set of original JavaScript codes; generating a new DOM mapping between the new modified DOM and the original DOM; storing the new DOM mapping; sending the new modified HTML document, the set of new modified CSS codes, and the set of new modified JavaScript codes to the remote client computer that sent the second request; intercepting, from the remote client computer that sent the second request, a new request based on the new modified DOM; translating the new request based, at least in part, on the new DOM mapping to produce a new translated request based on the original DOM.

11

11. A computer system comprising: a server computer configured to receive requests from a browser executed on a remote client computer and to send data to the browser in response to received requests; an intermediary computer communicatively coupled the server computer and comprising: a memory; a browser backend module configured to intercept, from the server computer, a first set of instructions that define one or more objects and to execute the first set of instructions to produce one or more data structures in the memory that correspond to the one or more objects; a forward translation module configured to update the one or more data structures based, at least in part, on a configuration to produce one or more updated data structures; to render a second set of instructions that are configured to cause the remote client computer, when executed by the remote client computer, to generate the one or more updated data structures in memory on the remote client computer, wherein the second set of instructions are different than the first set of instructions; to send the second set of instructions to the remote client computer; wherein the browser backend module is further configured to: intercept a third set of instructions; to determine the first set of instructions and the third set of instructions are a same set of instructions; wherein the forward translation module is further configured to: cache the second set of instructions; in response to determining the first set of instructions and the third set of instructions are the same set of instructions, sending the second set of instructions that is cached to a second remote client computer.

12

12. The system of claim 11 wherein the forward translation module is configured to select a particular data structure of the one or more data structures based, at least in part, on the configuration and to update the particular data structure.

13

13. The system of claim 11 wherein the forward translation module is configured to select a particular data structure of the one or more data structures based, at least on part, on the configuration, and to render the second set of instructions that are configured to cause the remote client computer, when executed by the remote client computer, to generate the particular data structure, which is not updated, in memory on the remote client computer.

14

14. The system of claim 11 wherein the forward translation module is configured to determine to use one or more polymorphic operations, which implement a polymorphic protocol based, at least in part, on the configuration and to perform the one or more polymorphic operations on the one or more data structures to produce the one or more updated data structures.

15

15. The system of claim 11 , wherein each object of the one or more objects includes an original identifier; wherein the browser backend module is configured to generate a data structure for each object of the one or more objects, wherein the data structure corresponds to the object and includes the original identifier included in the object; wherein the forward translation module is configured to update the original identifier included in the data structure for each object selected by the configuration to produce a modified identifier and a modified data structure of the one or more updated data structures.

16

16. The system of claim 15 , comprising a transaction store and a reverse translation module; wherein the forward translation module is configured to store, in the transaction store, a mapping between the modified identifier and the original identifier for each object; wherein the reverse translation module is configured to intercept, from the remote client computer, a request that includes one or more modified identifiers; to determine the original identifier for each modified identifier included in the request; to replace each modified identifier in the request with the original identifier to produce a modified request; to send the modified request to the server computer.

17

17. The system of claim 11 , wherein an object of the one or more objects includes an attribute; wherein the browser backend module is configured to generate a data structure that corresponds to the object that includes the attribute, wherein the object is identified in the configuration; wherein the forward translation module is configured to remove the attribute from the data structure to produce a modified data structure; to generate a new operation, which when performed adds the attribute to the modified data structure; to render one or more instructions, which when executed by the remote client computer generates the modified data structure and subsequently performs the new operation, which adds the attribute to the modified data structure.

18

18. The system of claim 11 , wherein the one or more updated data structures define an updated plurality of objects in a first hierarchy; wherein the forward translation module is configured to render a first document with instructions that are configured to cause the remote client computer, when executed by the remote client computer, to generate the one or more updated data structures that define the updated plurality of objects associated with each other in a second hierarchy, wherein the second hierarchy is different than a first hierarchy; and to render a second document with instructions, which when executed by the remote client computer cause the remote client computer to associate the updated plurality of objects with each other according to the first hierarchy; wherein the second set of instructions comprises the first document and the second document.

19

19. A computer system comprising: a web server computer configured to receive requests from a web browser executed on a first remote client computer; to send HTML, Cascading Style Sheets (CSS), and JavaScript codes over HTTP to the web browser in response to received requests; an intermediary computer communicatively coupled the web server computer and comprising; a memory; a browser backend module configured to intercept, from the web server computer, over HTTP, an original HTML document, a set of original CSS codes, and a set of original JavaScript codes that define one or more objects in an original Document Object Model (DOM) and one or more operations that are based, at least in part, on the one or more objects in the original DOM; to execute the original HTML document, the set of original CSS codes, and the set of original JavaScript codes by a headless browser to produce one or more data structures in memory that correspond to the one or more objects in the original DOM; a forward translation module configured to update the one or more data structures based, at least in part, on a configuration to produce one or more updated data structures; to render a modified HTML document, a set of modified CSS codes, and a set of modified JavaScript codes, which when processed by a remote client computer cause the remote client computer to generate the one or more updated data structures in memory on the remote client computer; to generate a DOM mapping between a modified DOM and the original DOM; to send the modified HTML document, the set of modified CSS codes, and the set of modified JavaScript codes to the first remote client computer; wherein the modified HTML document defines the modified DOM, which is different than the original DOM; wherein the modified HTML document, the set of modified CSS codes, and the set of modified JavaScript codes are different than the original HTML document, the set of original CSS codes, and the set of original JavaScript codes; a transaction store configured to store the DOM mapping; a reverse translation module configured to intercept, from the remote client computer, a request based on the modified DOM; to translate the request based, at least in part, on the DOM mapping to produce a translated request based on the original DOM; to send the translated request to the web server computer.

20

20. The computer system of claim 19 , wherein the browser backend module is configured to intercept, from the web server computer, the original HTML document, the set of original CSS codes, and the set of original JavaScript codes in response to a second request; to execute the original HTML document, the set of original CSS codes, and the set of original JavaScript codes by the headless browser to produce one or more new data structures in memory that correspond to the one or more objects in the original DOM; wherein the forward translation module is configured to update the one or more new data structures based, at least in part, on the configuration to produce one or more new updated data structures; to render a new modified HTML document, a set of new modified CSS codes, and a set of new modified JavaScript codes, which when processed by the remote client computer that sent the second request cause the remote client computer to generate the one or more new updated data structures in memory on the remote client computer; to generate a new DOM mapping between a new modified DOM and the original DOM; to store the new DOM mapping in the transaction store; to send the new modified HTML document, the set of new modified CSS codes, and the set of new modified JavaScript codes to the remote client computer that sent the second request; wherein the new modified HTML document defines the new modified DOM as different than the modified DOM and the original DOM; wherein the new modified HTML document, the set of new modified CSS codes, and the set of new modified JavaScript codes are different than the modified HTML document, the set of modified CSS codes, and the set of modified JavaScript codes; wherein the new modified HTML document, the set of new modified CSS codes, and the set of new modified JavaScript codes are different than the original HTML document, the set of original CSS codes, and the set of original JavaScript codes; wherein the reverse translation module is configured to intercept, from the remote client computer that sent the second request, a new request based on the new modified DOM; to translate the new request based, at least in part, on the new DOM mapping to produce a new translated request based on the original DOM.

Patent Metadata

Filing Date

Unknown

Publication Date

February 23, 2016

Inventors

Justin Call

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “CLIENT/SERVER SECURITY BY AN INTERMEDIARY RENDERING MODIFIED IN-MEMORY OBJECTS” (9270647). https://patentable.app/patents/9270647

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.

CLIENT/SERVER SECURITY BY AN INTERMEDIARY RENDERING MODIFIED IN-MEMORY OBJECTS — Justin Call | Patentable