IP Library Granted Patent US 12,361,102
Granted Patent B2
US 12,361,102 · App. 18/483,400 · Granted Jul 15, 2025

Verification of access permissions

Inventor: James Dabbs (Santa Barbara, CA)
Assignee: Procore Technologies, Inc.
G06F21/31G06F9/547G06F21/6218G06F2221/2141
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,361,102
App. No.
18/483,400
Granted
Jul 15, 2025
Kind
B2
Abstract

An example computing platform is configured to detect a request on behalf of a given user, the request comprising a parameter of a given type; determine that the parameter requires a permission verification; apply to the request a verification status indicator that indicates whether or not a permission verification has been successfully performed for the given user with respect to the parameter; perform a permission verification for the given user with respect to the parameter; either (i) leave the verification status indicator set to a first value if the given user does not have permission to embed scripts into the given type of parameter, or (ii) update the verification status indicator from the first value to a second value if the given user has permission to embed scripts into the given type of parameter; and grant or deny the request based at least in part on the verification status indicator.

Claims (66)

1. A computing platform comprising:

a network interface;

at least one processor;

at least one non-transitory computer-readable medium; and

program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

receive, from a client station associated with a given user, a request on behalf of the given user;

determine that the request on behalf of the given user requires a permission verification to be successfully performed in order for the request to be granted, wherein the request comprises a parameter of a given type;

before a permission verification is performed, generate a verification status indicator that is to be applied to the request as either (i) appended metadata or (ii) an inserted data field, wherein the verification status indicator indicates a status of a permission verification for the given user with respect to the parameter;

after a permission verification is performed, determine a value for the verification status indicator based on the permission verification for the given user with respect to the parameter, wherein the value of the verification status indicator is set to (i) a first value indicating that a permission verification has not been successfully performed; or (ii) a second value indicating that a permission verification has been successfully performed;

after the value for the verification status indicator is set, determine whether the request is to be granted or denied based at least in part on the verification status indicator; and

based on determining whether the request is to be granted or denied, transmit a response to the request.

2. The computing platform of claim 1 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

perform a permission verification for the given user with respect to the parameter, wherein the verification status indicator is (i) set to the first value if the permission verification for the given user with respect to the parameter is not successful or (ii) the second value if the permission verification for the given user with respect to the parameter is successful.

3. The computing platform of claim 1 , further comprising program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

after generating the verification status indicator, apply the verification status indicator to the request, wherein the value of the verification status indicator is set to an initial value comprising the first value.

4. The computing platform of claim 3 , wherein the program instructions that are executable by the at least one processor such that the computing platform is configured to determine the value for the verification status indicator comprise program instructions that are executable by the at least one processor such that the computing platform is configured to:

if the permission verification for the given user with respect to the parameter is not successful, leave the value of the verification status indicator set to the first value indicating that the permission verification has not been successfully performed.

5. The computing platform of claim 3 , wherein the program instructions that are executable by the at least one processor such that the computing platform is configured to determine the value for the verification status indicator comprise program instructions that are executable by the at least one processor such that the computing platform is configured to:

if the permission verification for the given user with respect to the parameter is successful, update the value of the verification status indicator from the first value to the second value indicating that the permission verification has been successfully performed.

6. The computing platform of claim 1 , wherein the parameter comprises a Hypertext Markup Language (HTML) tag.

7. The computing platform of claim 6 , wherein the permission verification for the given user with respect to the HTML tag comprises determining whether or not the given user has permission to embed the HTML tag in a rendered HTML response page.

8. The computing platform of claim 1 , wherein the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to determine whether the request is to be granted or denied based at least in part on the verification status indicator comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

determine that the verification status indicator for the parameter is set to the second value indicating that a permission verification has been successfully performed; and

in response to determining that the verification status indicator for the parameter is set to the second value, determine that the request is to be granted.

9. The computing platform of claim 8 , wherein:

the request comprises a request to view a given resource hosted by the computing platform;

the parameter comprises an identifier of the given resource; and

the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to transmit the response to the request comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

based on determining that the request is to be granted, transmit, to the client station associated with the given user, a data communication including an instruction to display a representation of the given resource.

10. The computing platform of claim 8 , wherein:

the request comprises a request to modify a given resource hosted by the computing platform;

the parameter comprises an identifier of the given resource;

the computing platform further comprises program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

update data defining the given resource in accordance with the request to modify the given resource; and

the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to transmit the response to the request comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

based on determining that the request is to be granted, transmit, to the client station associated with the given user, a data communication including an instruction to display a representation of the modified given resource.

11. The computing platform of claim 1 , wherein the program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to determine whether the request is to be granted or denied based at least in part on the verification status indicator comprise program instructions stored on the at least one non-transitory computer-readable medium that are executable by the at least one processor such that the computing platform is configured to:

determine that the verification status indicator for the parameter is set to the first value indicating that a permission verification has not been successfully performed; and

in response to determining that the verification status indicator for the parameter is set to the first value, determine that the request is to be denied.

12. A non-transitory computer-readable medium, wherein the non-transitory computer-readable medium is provisioned with program instructions that, when executed by at least one processor, cause a computing platform to:

receive, from a client station associated with a given user, a request on behalf of the given user;

determine that the request on behalf of the given user requires a permission verification to be successfully performed in order for the request to be granted, wherein the request comprises a parameter of a given type;

permission verification is performed, generate a verification status indicator that is to be applied to the request as either (i) appended metadata or (ii) an inserted data field, wherein the verification status indicator indicates a status of a permission verification has for the given user with respect to the parameter;

after a permission verification is performed, determine a value for the verification status indicator based on the permission verification for the given user with respect to the parameter, wherein the value of the verification status indicator is set to (i) a first value indicating that a permission verification has not been successfully performed; or (ii) a second value indicating that a permission verification has been successfully performed;

after the value for the verification status indicator is set, determine whether the request is to be granted or denied based at least in part on the verification status indicator; and

based on determining whether the request is to be granted or denied, transmit a response to the request.

13. The non-transitory computer-readable medium of claim 12 , wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the computing platform to:

perform a permission verification for the given user with respect to the parameter, wherein the verification status indicator is (i) set to the first value if the permission verification for the given user with respect to the parameter is not successful or (ii) set to the second value if the permission verification for the given user with respect to parameter successful.

14. The non-transitory computer-readable medium of claim 12 , wherein the non-transitory computer-readable medium is also provisioned with program instructions that, when executed by at least one processor, cause the computing platform to:

after generating the verification status indicator, apply the verification status indicator to the request, wherein the value of the verification status indicator is set to an initial value comprising the first value.

15. The non-transitory computer-readable medium of claim 14 , wherein the program instructions that, when executed by at least one processor, cause the computing platform to determine the value for the verification status indicator comprise program instructions that, when executed by at least one processor, cause the computing platform to:

if the permission verification for the given user with respect to the parameter is not successful, leave the value of the verification status indicator set to the first value indicating that the permission verification has not been successfully performed.

16. The non-transitory computer-readable medium of claim 14 , wherein the program instructions that, when executed by at least one processor, cause the computing platform to determine the value for the verification status indicator comprise program instructions that, when executed by at least one processor, cause the computing platform to:

if the permission verification for the given user with respect to the parameter is successful, update the value of the verification status indicator from the first value to the second value indicating that the permission verification has been successfully performed.

17. The non-transitory computer-readable medium of claim 12 , wherein the parameter comprises a Hypertext Markup Language (HTML) tag.

18. A method carried out by a computing platform, the method comprising:

receiving, from a client station associated with a given user, a request on behalf of the given user;

determining that the request on behalf of the given user requires a permission verification to be successfully performed in order for the request to be granted, wherein the request comprises a parameter of a given type;

before a permission verification is performed, generating a verification status indicator that is to be applied to the request as either (i) appended metadata or (ii) an inserted data field, wherein the verification status indicator indicates a status of a permission verification for the given user with respect to the parameter;

after a permission verification is performed, determining a value for the verification status indicator based on the permission verification for the given user with respect to the parameter, wherein the value of the verification status indicator is set to (i) a first value indicating that a permission verification has not been successfully performed or (ii) a second value indicating that a permission verification has been successfully performed;

after the value for the verification status indicator is set, determining whether the request is to be granted or denied based at least in part on the verification status indicator; and

based on determining whether the request is to be granted or denied, transmitting a response to the request.

19. The method of claim 18 , further comprising:

performing a permission verification for the given user with respect to the parameter, wherein the verification status indicator is (i) set to the first value if the permission verification for the given user with respect to the parameter is not successful or (ii) set to the second value if the permission verification for the gi respect to the parameter is successful.

20. The method of claim 18 , further comprising:

after generating the verification status indicator, applying the verification status indicator to the request, wherein the value of the verification status indicator is set to an initial value comprising the first value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2024
From: DABBS, JAMES
To: PROCORE TECHNOLOGIES, INC.
Reel/Frame 066670/0682 →
Continuity (3)
Continuation 18158270 · Jan 23, 2023
Continuation 17008547 · Aug 31, 2020
Related Publication 20240184863A1 · Jun 6, 2024
References Cited (57)
US 7984304B1 · Waldspurger et al. · 2011 [cited by applicant]
US 8230484B1 · Wiese · 2012 [cited by applicant]
US 8832795B2 · Dowds et al. · 2014 [cited by applicant]
US 8931084B1 · Paya et al. · 2015 [cited by applicant]
US 9183358B2 · Inooka · 2015 [cited by applicant]
US 9218502B1 · Doermann et al. · 2015 [cited by applicant]
US 9953178B2 · Umbehocker · 2018 [cited by applicant]
US 10073791B2 · Linga et al. · 2018 [cited by applicant]
US 10200369B1 · Roundy et al. · 2019 [cited by applicant]
US 10536277B1 · Kruse et al. · 2020 [cited by applicant]
US 10708269B1 · Yancey · 2020 [cited by applicant]
US 10972580B1 · Dorn et al. · 2021 [cited by applicant]
US 11411736B2 · Murdoch et al. · 2022 [cited by applicant]
US 12132716B2 · Isaacs · 2024 [cited by examiner]
US 20020147917A1 · Brickell · 2002 [cited by applicant]
US 20040237045A1 · Meltzer · 2004 [cited by applicant]
US 20050177570A1 · Dutta et al. · 2005 [cited by applicant]
US 20050289342A1 · Needham et al. · 2005 [cited by applicant]
US 20060294104A1 · Morrison et al. · 2006 [cited by applicant]
US 20070174899A1 · Broberg et al. · 2007 [cited by applicant]
US 20070180275A1 · Metzger et al. · 2007 [cited by applicant]
US 20080134297A1 · Clinick et al. · 2008 [cited by applicant]
US 20080235683A1 · Sreedhar · 2008 [cited by applicant]
US 20090150886A1 · Subramanian et al. · 2009 [cited by applicant]
US 20090199273A1 · Yalamanchi · 2009 [cited by applicant]
US 20090249435A1 · Madathilparambil George et al. · 2009 [cited by applicant]
US 20100011448A1 · Wagner · 2010 [cited by examiner]
US 20130067568A1 · Obasanjo et al. · 2013 [cited by applicant]
US 20130097203A1 · Bhattacharjee et al. · 2013 [cited by applicant]
US 20130183937A1 · Neal et al. · 2013 [cited by applicant]
US 20130185809A1 · Yabe · 2013 [cited by applicant]
US 20130246470A1 · Price et al. · 2013 [cited by applicant]
US 20160182604A1 · Engsign et al. · 2016 [cited by applicant]
US 20160191534A1 · Mallozzi · 2016 [cited by applicant]
US 20170230422A1 · Shimizu · 2017 [cited by applicant]
US 20170279625A1 · Safa · 2017 [cited by applicant]
US 20190140895A1 · Ennis, Jr. et al. · 2019 [cited by applicant]
US 20200322143A1 · Voit et al. · 2020 [cited by applicant]
US 20200366742A1 · Van Os et al. · 2020 [cited by applicant]
US 20210281558A1 · Hockey et al. · 2021 [cited by applicant]
US 20210329037A1 · O'Bryne et al. · 2021 [cited by applicant]
US 20210344662A1 · Miu · 2021 [cited by applicant]
US 20220028012A1 · Hockey et al. · 2022 [cited by applicant]
US 20220272094A1 · Pritchard · 2022 [cited by examiner]
US 20220335110A1 · Isaacs · 2022 [cited by applicant]
A. A. Battah, M. M. Madine, H. Alzaabi, I. Yaqoob, K. Salah and R. Jayaraman, “Blockchain-Based Multi-Party Authorization for Accessing IPFS Encrypted Data,” in IEEE Access, vol. 8, pp. 196813-196825, 2020,. (Year: 2020… [cited by examiner]
A. Margheri, M. Masi, R. Pugliese and F. Tiezzi, “A Rigorous Framework for Specification, Analysis and Enforcement of Access Control Policies,” in IEEE Transactions on Software Engineering, vol. 45, No. 1, pp. 2-33, Jan… [cited by examiner]
N. Saxena, B. J. Choi and R. Lu, “Authentication and Authorization Scheme for Various User Roles and Devices in Smart Grid,” in IEEE Transactions on Information Forensics and Security, vol. 11, No. 5, pp. 907-921, May 2… [cited by examiner]
Amazon API Gateway Developer Guide, Request Validation, https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-method-request-validation.html, retrieved from the Internet Sep. 14, 2020, pp. 352-365. [cited by applicant]
GitHub—Zendesk/Stronger_Parameters: Type Checking and Type Casting of Parameters for Action Pack, https://github.com/zendesk/stronger_parameters, retrieved from the Internet Sep. 14, 2020, pp. 1-8. [cited by applicant]
Abioye, Sofiat O. et al., “Artificial Intelligence in the Construction Industry: A Review of Present Status, Opportunities and Future Challenges”, Journal of Building Engineering, vol. 44, Oct. 5, 2021, 13 pages. [cited by applicant]
Zhu, Y. et al., “Collaborative Integrity Verification in Hybrid Clouds,” 7th International Conference on Collaborative Computing: Networking, Applications and Worksharing (CollaborateCom), 2011, pp. 191-200. [cited by applicant]
Li, Q. et al., “Capability-Based Security Enforcement in Named Data Networking,” in IEEE/ACM Transactions on Networking, vol. 25, No. 5, Oct. 2017, pp. 2719-2730. [cited by applicant]
Xu, G. et al., “Catch You if You Deceive Me: Verifiable and Privacy-Aware Truth Discovery in Crowdsensing Systems,” Proceedings of the 15th ACM Asia Conference on Computer and Communications Security,Oct. 5-9, 2020, pp.… [cited by applicant]
Schuster, R. et al., “Situational Access Control in the Internet of Things”, In Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security (CCS '18), Association for Computing Machinery, New Y… [cited by applicant]
Zhou, Y. et al., “Understanding and Monitoring Embedded Web Scripts”, 2015 IEEE Symposium on Security and Privacy, San Jose, CA, 2015, pp. 850-865. [cited by applicant]
Son, Ha Xuan et al., “A Novel Attribute-Based Access Control System for Fine-Grained Privacy Protection”, In Proceedings of the 3rd International Conference on Cryptography, Security and Privacy (ICCSP '19), Association… [cited by applicant]