FAQ-000512 - Custom Settings and Configuration Security / Public Custom Settings and Metadata Security Concerns

Current Status:VALID_RESPONSEErrorUnable to AnswerSuggests Case

Current FAQ

Question
What is the secure alternative to a Public Custom Setting when users need to modify the setting post-installation?
Answer
The secure alternative to a Public Custom Setting, when users need to modify the setting post-installation, is to use **Protected Custom Settings**. To enable users to set up or modify the settings, you can create a custom UI (using Visualforce, Aura, or LWC) that captures user input and securely passes it to an Apex class within the managed package for storage.
Enhancing FAQ...

Enhancing FAQ with AI recommendations...

AI Recommended Enhancement

Related Security Rules (click to view)
ApexCRUDViolationApexSharingViolations
Question
What is the secure alternative to a Public Custom Setting when users need to modify the setting post-installation?
Recommended Answer Update
The secure alternative to a Public Custom Setting, when users need to modify the setting post-installation, is to use **Protected Custom Settings**. To enable users to set up or modify the settings, you can create a custom UI (using Visualforce, Aura, or LWC) that captures user input and securely passes it to an Apex class within the managed package for storage.
Reasoning
The original answer is technically accurate and well-structured, covering the core security recommendation of using Protected Custom Settings instead of Public Custom Settings for user-modifiable configurations. No outdated content was detected - the recommendation to use Protected Custom Settings remains current best practice for AppExchange security reviews. The content clearly addresses the security concern of allowing post-installation modifications while maintaining package security boundaries. I selected ApexCRUDViolation because this FAQ discusses creating custom UIs and Apex classes for managing Custom Settings data access, which directly relates to CRUD (Create, Read, Update, Delete) operations that this security rule monitors. The FAQ's mention of 'securely passes it to an Apex class within the managed package for storage' involves data operations that should enforce proper CRUD permissions. I selected ApexSharingViolations because the FAQ addresses access control for Custom Settings through managed package boundaries, which relates to data sharing and access controls that this rule monitors. The concept of using Protected Custom Settings versus Public Custom Settings is fundamentally about controlling data access and sharing, which aligns with what ApexSharingViolations detects.
Reasoning References
Recommended Related Articles