IP Library Granted Patent US 11,025,629
Granted Patent B2
US 11,025,629 · App. 16/151,625 · Granted Jun 1, 2021

Secure component-based web applications

Inventors: Doug Chasman (Pittsford, NY); Caridy Patiño (Miami, FL); Trevor James Bliss (Oakland, CA); Sergey Gorbaty (Emeryville, CA)
Assignee: salesforce.com, inc.
H04L63/10G06F16/80G06F16/93G06F16/9535G06F21/629G06F21/6227H04L63/06H04L63/102H04L63/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 11,025,629
App. No.
16/151,625
Granted
Jun 1, 2021
Kind
B2
Abstract

Disclosed are examples of systems, apparatus, methods and computer program products for providing a security model for component-based web applications. Documents for a web-based application are received, with the application containing custom components and Application Programming Interface (API) components. A Document Object Model (DOM) is processed corresponding to the web-based application, with the custom and API components modeled in hierarchical form. For each custom component, a key is assigned in accordance with the rules of capability security, accessible custom components are identified for which the custom component can provide the assigned key, a virtual DOM is generated for the custom component with the component and identified accessible custom components being modeled in hierarchical form, and the custom component is prohibited access to all inaccessible custom components.

Claims (54)

1. A system comprising:

a processor; and

a memory storing instructions configurable to cause: obtaining a programming interface for a web-based application, the web-based application comprising one or more of a plurality of custom components and one or more of a plurality of interface components, the programming interface structurally representing the one or more custom components and the one or more interface components in hierarchical form;

identifying one or more of the plurality of custom components as one or more accessible components for which a first one of the plurality of custom components is capable of providing a key assigned to the one or more accessible components; and

generating a virtual programming interface, the virtual programming interface structurally representing the first custom component and the one or more accessible components in hierarchical form.

2. The system of claim 1 , the instructions further configurable to cause:

identifying one or more of the plurality of custom components as one or more inaccessible components for which the first custom component is incapable of providing a key assigned to the one or more inaccessible components;

restricting access of the first custom component to the one or more inaccessible custom components; and

restricting access of the first custom component to the programming interface for the web-based application.

3. The system of claim 1 , the instructions further configurable to cause:

determining that one or more of the plurality of interface components has a private designation; and

restricting access of the first custom component to the one or more private components.

4. The system of claim 1 , the instructions further configurable to cause:

determining that one or more of the plurality of interface components has a public designation,

wherein the virtual programming interface further structurally represents the one or more public components in hierarchical form.

5. The system of claim 1 , the instructions further configurable to cause:

determining one or more namespace identifications for a developer associated with the first custom component, wherein the key is assigned to the one or more accessible components based on the one or more namespace identifications.

6. The system of claim 1 , wherein the programming interfaces are document object models (DOMs).

7. The system of claim 1 , wherein the interface components are application programming interface (API) components.

8. A method comprising:

obtaining a programming interface for a web-based application, the web-based application comprising one or more of a plurality of custom components and one or more of a plurality of interface components, the programming interface structurally representing the one or more custom components and the one or more interface components in hierarchical form;

identifying one or more of the plurality of custom components as one or more accessible components for which a first one of the plurality of custom components is capable of providing a key assigned to the one or more accessible components; and

generating a virtual programming interface, the virtual programming interface structurally representing the first custom component and the one or more accessible components in hierarchical form.

9. The method of claim 8 , further comprising:

identifying one or more of the plurality of custom components as one or more inaccessible components for which the first custom component is incapable of providing a key assigned to the one or more inaccessible components;

restricting access of the first custom component to the one or more inaccessible custom components; and

restricting access of the first custom component to the programming interface for the web-based application.

10. The method of claim 8 , further comprising:

determining that one or more of the plurality of interface components has a private designation; and

restricting access of the first custom component to the one or more private components.

11. The method of claim 8 , further comprising:

determining that one or more of the plurality of interface components has a public designation,

wherein the virtual programming interface further structurally represents the one or more public components in hierarchical form.

12. The method of claim 8 , further comprising:

determining one or more namespace identifications for a developer associated with the first custom component, wherein the key is assigned to the one or more accessible components based on the one or more namespace identifications.

13. The method of claim 8 , wherein the programming interfaces are document object models (DOMs), and the interface components are application programming interface (API) components.

14. A computer program product comprising a non-transitory computer-readable medium storing computer-readable program code capable of being executed by one or more processors, the program code comprising instructions configurable to cause:

obtaining a programming interface for a web-based application, the web-based application comprising one or more of a plurality of custom components and one or more of a plurality of interface components, the programming interface structurally representing the one or more custom components and the one or more interface components in hierarchical form;

identifying one or more of the plurality of custom components as one or more accessible components for which a first one of the plurality of custom components is capable of providing a key assigned to the one or more accessible components; and

generating a virtual programming interface, the virtual programming interface structurally representing the first custom component and the one or more accessible components in hierarchical form.

15. The computer program product of claim 14 , the instructions further configurable to cause:

identifying one or more of the plurality of custom components as one or more inaccessible components for which the first custom component is incapable of providing a key assigned to the one or more inaccessible components;

restricting access of the first custom component to the one or more inaccessible custom components; and

restricting access of the first custom component to the programming interface for the web-based application.

16. The computer program product of claim 14 , the instructions further configurable to cause:

determining that one or more of the plurality of interface components has a private designation; and

restricting access of the first custom component to the one or more private components.

17. The computer program product of claim 14 , the instructions further configurable to cause:

determining that one or more of the plurality of interface components has a public designation,

wherein the virtual programming interface further structurally represents the one or more public components in hierarchical form.

18. The computer program product of claim 14 , the instructions further configurable to cause:

determining one or more namespace identifications for a developer associated with the first custom component, wherein the key is assigned to the one or more accessible components based on the one or more namespace identifications.

19. The computer program product of claim 14 , wherein the programming interfaces are document object models (DOMs).

20. The computer program product of claim 14 , wherein the interface components are application programming interface (API) components.

Assignments (1)
CHANGE OF NAME Recorded Jan 27, 2025
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 070014/0841 →
Continuity (2)
Continuation 15364939 · Nov 30, 2016
Related Publication 20190036929A1 · Jan 31, 2019
Cited By (5)
US 12,205,076 US 12,353,482 US 12,361,153 US 12,596,701 US 12,634,358