Sorry, forgot to include how a violation report looks like:

```
{
  "age": 0,
  "body": {
    "allowAttribute": "camera",
    "disposition": "enforce",
    "message": "Potential permissions policy violation: camera is not 
allowed in this document.",
    "policyId": "camera"
  },
  "type": "potential-permissions-policy-violation",
  "url": "https://test.shhnjk.com/permissions_policy.php";,
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) 
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"
}
```

Main differences with Permissions Policy violation reports are:

   1. It includes *allowAttributes* in the body (which comes from the 
   violating iframe's allow attribute).
   2. Name of the violation type is called 
   "potential-permissions-policy-violation".


Thanks,

Jun

On Thursday, January 23, 2025 at 3:28:11 PM UTC-8 Jun Kokatsu wrote:

> Explainer
>
> Potential Permissions Policy violation report triggers when Permissions 
> Policy (or report-only) is enforced on a document, where iframe has an 
> allow attribute which conflicts with the Permissions Policy specified by 
> the header.
>
> Unlike Permissions Policy violations, Potential Permissions Policy 
> violations fires when the iframe is loaded, not when the feature is being 
> used, so that it will not leak the feature usage inside cross-origin 
> iframes.
>
> Example:
>
> Permissions-Policy: camera=();
>
> <!--
>
> This sends a Potential Permissions Policy violation because the "camera" 
> permission is not allowed for any origin, but this site tries to delegate 
> the camera permission to example.com.
>
> -->
> <iframe src="https://example.com"; allow="camera"></iframe>
>
> PoC: 
> https://test.shhnjk.com/permissions_policy.php?pp=camera=()&allow=camera&url=https://example.com&xss=%3Cs%3Eadd%20any%20html%20here%3C/s%3E%3Cbr%3E
> Security Considerations
>
> This change compares Permissions Policy defined in the document against 
> iframe’s `src` and `allow` attributes to find a conflict. Since Permissions 
> Policy, `src` attribute, and `allow` attribute are all set by the same 
> document, this change should not leak any new information to the document.
>
> You can see the relevant spec in the following PR:
> https://github.com/w3c/webappsec-permissions-policy/pull/546
>
> Thanks,
>
> Jun
>
>
> On Wed, Jan 22, 2025 at 6:55 AM Yoav Weiss (@Shopify) <
> yoav...@chromium.org> wrote:
>
>> An explainer (even an inline one) and pointers to the relevant spec 
>> sections would be very helpful when reviewing this intent. Thanks! :)
>>
>> On Thursday, January 16, 2025 at 11:42:03 PM UTC+1 Jun Kokatsu wrote:
>>
>>> Contact emailsjkok...@google.com
>>>
>>> Specification
>>> https://github.com/w3c/webappsec-permissions-policy/pull/546
>>>
>>> Summary
>>>
>>> Introduces a new violation type called "Potential Permissions Policy 
>>> violation", which will only look at Permissions Policy (including 
>>> report-only policy) and the allow attribute set in iframes to detect the 
>>> conflict between Permissions Policy enforced vs permissions propagated to 
>>> iframes.
>>>
>>> Motivation
>>> Permissions Policy violation reports for cross-origin iframes are only 
>>> sent to the iframe's reporting endpoint and not to the embedder's reporting 
>>> endpoint, because of the concern that it might leak sensitive information 
>>> about a cross-origin iframe. However, this makes it difficult for sites to 
>>> enforce Permissions Policy because it can't learn about breakages in 
>>> cross-origin iframes. This feature introduces a new violation type called 
>>> "Potential Permissions Policy violation", which will only look at existing 
>>> Permissions Policy (including report-only policy) and the allow attribute 
>>> set in iframes to detect the conflict between Permissions Policy enforced 
>>> vs permissions being propagated to iframes. Since both Permissions Policy 
>>> and allow attributes are set by the embedder, this feature does not leak 
>>> any new information to the embedder. However, potential Permissions Policy 
>>> violations will be sent when an iframe is loaded, and not when the iframe 
>>> uses the prohibited feature, which is different from the normal Permissions 
>>> Policy violations which fires upon a feature usage (hence the name 
>>> "potential").
>>>
>>> Blink componentBlink>PermissionsPolicy 
>>> <https://issues.chromium.org/issues?q=customfield1222907:%22Blink%3EPermissionsPolicy%22>
>>>
>>> TAG reviewNone
>>>
>>> TAG review statusNot applicable
>>>
>>> Risks
>>>
>>>
>>> Interoperability and Compatibility
>>>
>>> None
>>>
>>>
>>> *Gecko*: No signal 
>>> <https://github.com/mozilla/standards-positions/issues/1164>
>>>
>>> *WebKit*: No signal 
>>> <https://github.com/WebKit/standards-positions/issues/448>
>>>
>>> *Web developers*: No signals
>>>
>>> *Other signals*:
>>>
>>> Security
>>>
>>> Potential Permissions Policy violation reports should not include any 
>>> new information about cross-origin iframes
>>>
>>>
>>> WebView application risks
>>>
>>> Does this intent deprecate or change behavior of existing APIs, such 
>>> that it has potentially high risk for Android WebView-based applications?
>>>
>>> None
>>>
>>>
>>> Debuggability
>>>
>>> None
>>>
>>>
>>> Will this feature be supported on all six Blink platforms (Windows, Mac, 
>>> Linux, ChromeOS, Android, and Android WebView)?No
>>>
>>> Is this feature fully tested by web-platform-tests 
>>> <https://chromium.googlesource.com/chromium/src/+/main/docs/testing/web_platform_tests.md>
>>> ?https://github.com/web-platform-tests/wpt/pull/49978
>>>
>>> Flag name on about://flagsNone
>>>
>>> Finch feature namePotentialPermissionsPolicyReporting
>>>
>>> Requires code in //chrome?False
>>>
>>> Tracking bughttps://issues.chromium.org/issues/40941424
>>>
>>> Estimated milestones
>>> Shipping on desktop 134
>>>
>>> Anticipated spec changes
>>>
>>> Open questions about a feature may be a source of future web compat or 
>>> interop issues. Please list open issues (e.g. links to known github issues 
>>> in the project for the feature specification) whose resolution may 
>>> introduce web compat/interop risk (e.g., changing to naming or structure of 
>>> the API in a non-backward-compatible way).
>>> None
>>>
>>> Link to entry on the Chrome Platform Status
>>> https://chromestatus.com/feature/5154241037205504?gate=5069369228656640
>>>
>>> This intent message was generated by Chrome Platform Status 
>>> <https://chromestatus.com/>.
>>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"blink-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to blink-dev+unsubscr...@chromium.org.
To view this discussion visit 
https://groups.google.com/a/chromium.org/d/msgid/blink-dev/0bcf6470-8142-42c4-b4fa-762fc4319cden%40chromium.org.

Reply via email to