Guideline 4.4.2

Guideline 4.4.2 - Design: Safari Extension Requesting Overly Broad Website Access

Medium SeverityMedium FixTypical Fix: 2-8 hours0 Reports
Also known as:Safari extension requests access to all websites unnecessarilyExtension website access is broader than required for its functionalityExtension should only request access to necessary domainsOverly broad website access raises privacy concernsExtension permissions exceed what is needed for stated features

Our Take

Apple is rejecting your Safari extension because it requests access to more websites than necessary for its stated functionality. Safari extensions must follow the principle of least privilege — requesting access only to the specific domains where the extension provides value, not blanket access to all websites. This rejection commonly hits ad blockers, productivity extensions, and content modification tools that request 'All Websites' access when they could function with access to a narrower set of domains. Apple's concern is both privacy (extensions can read page content) and security (broad access increases attack surface). The reviewers check your extension's SFSafariWebsiteAccess configuration in the Info.plist. If your Level is set to All but your extension's functionality only applies to specific sites (e.g., a coupon finder that only works on shopping sites), Apple will reject it. The fastest compliant path is to restrict your Allowed Domains to only the domains where your extension actually provides functionality. If your extension genuinely needs broad access (like a password manager or accessibility tool), you need to justify it clearly in your Review Notes and privacy disclosures.

Resolution Guide

01

Identify required domains

List every website where your extension provides functionality. Be specific — not 'shopping sites' but the actual domains.

02

Update Info.plist

Set SFSafariWebsiteAccess > Level to Some and populate Allowed Domains with only the necessary domains.

03

Use domain matching patterns

Use wildcards judiciously: *.amazon.com is fine if you need all Amazon subdomains, but don't use * for all domains.

04

Test the restricted configuration

Verify your extension activates only on allowed domains and handles non-allowed domains gracefully (no errors, no broken UI).

### If you NEED broad access:

05

Justify in Review Notes

Explain exactly why every webpage needs to be accessed. Examples: 'Password autofill requires page access to detect login forms on any website,' or 'Accessibility reader must reformat content on all pages.'

06

Add user-facing privacy disclosure

Before the user enables the extension, explain what data is accessed on each page and how it's used.

07

Implement content script specificity

Even with broad access, only inject content scripts when needed. Use declarativeNetRequest for content blocking instead of active page scripts.

08

Minimize data collection

Don't send page URLs or content to your servers unless essential. Process locally.

Prevention

  • Start with the narrowest possible access and expand only as needed
  • Use Some access level with explicit domain lists by default
  • Document your access justification before submission
  • Consider whether a content blocker (which uses declarativeNetRequest and doesn't read pages) is sufficient for your use case
  • Example Rejection Email

    From:Apple App Review Team
    Subject:Guideline 4.4.2 - Design: Safari Extension Requesting Over
    Guideline 4.4.2 - Design - Extensions Your Safari extension requests access to all websites, but this level of access does not appear to be necessary for the extension's stated functionality. Safari extensions should only request access to the websites where they provide features. Requesting overly broad website access raises privacy and security concerns, as extensions with this access can read and modify content on any webpage the user visits. Next Steps: Please revise your extension's website access permissions to only include the domains necessary for its core functionality. If broad access is essential, explain why in the Review Notes and ensure users are clearly informed about the extent of website access.

    Consider Appealing

    Appeal if your extension genuinely requires broad access (password managers, accessibility tools, content blockers). Explain the technical reason each visited page needs to be accessed and reference your privacy disclosures. If access can be narrowed, narrow it and resubmit.

    Generate Appeal

    Before & After

    Before — Rejected

    Price comparison Safari extension requests 'All Websites' access but only provides functionality on 50 specific shopping domains

    After — Approved

    Extension's SFSafariWebsiteAccess Level changed to 'Some' with Allowed Domains listing the 50 specific shopping sites, extension gracefully deactivates on non-shopping pages

    What changed: Extensions must use the narrowest access scope possible. If you only work on 50 sites, don't request access to all sites.

    Community Solutions · 0

    Sign in to share your solution.

    More Guideline 4 (Design) rejections

    View all Guideline 4 rejections