A security library for Apex on Force.com that provides input validation, output encoding, and access control enforcement.
Force.com ESAPI is an open-source Enterprise Security API for the Apex programming language on the Salesforce Force.com platform. It provides developers with tools to validate input, encode output, and enforce access controls, helping to prevent common security vulnerabilities like injection attacks and unauthorized data access in custom Salesforce applications.
Salesforce developers and administrators building custom Apex applications on the Force.com platform who need to implement robust security measures and comply with Salesforce security best practices.
Developers choose Force.com ESAPI because it seamlessly integrates security enforcement into Apex code, offering a standardized way to handle validation, encoding, and access control that aligns with Salesforce's security models, reducing manual security implementation errors.
Enterprise Security API for the Apex language on the Force.com platform.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Provides both exception-based and boolean methods for validating untrusted input like credit card numbers directly in Apex, as shown in the README's getValidCreditCard and isValidCreditCard examples, preventing injection attacks.
Encodes output for safe display in Visualforce pages using functions like SFDC_HTMLENCODE, equivalent to built-in Visualforce encoding but within Apex classes, ensuring consistent security in business logic.
Enforces Salesforce's CRUD, FLS, and Sharing models in Apex by allowing execution in user context, with methods like updateAsUser, preventing security bypasses in system mode as detailed in the access control example.
Offers specific security exception messages via SFDCAccessControlException, with methods like getExceptionType() and getExceptionReason(), improving debugging and compliance reporting.
Requires downloading and uploading classes to the Force.com Org or using a one-click deployment link, which is cumbersome compared to modern package management or seamless Salesforce DX integrations.
Primarily supports Apex and Visualforce, with no built-in integration for newer Salesforce frameworks like Lightning Web Components, reducing its relevance for contemporary UI development.
The README directs users to a separate doc folder for detailed documentation, which may not be comprehensive or up-to-date, increasing the learning curve and reliance on community support.