files/en-us/web/http/reference/headers/content-security-policy/style-src-attr/index.md
The HTTP {{HTTPHeader("Content-Security-Policy")}} (CSP) style-src-attr directive specifies valid sources for inline styles applied to individual DOM elements.
The directive does not set valid sources for {{HTMLElement("style")}} elements and {{HTMLElement("link")}} elements with rel="stylesheet".
These are set using {{CSP("style-src-elem")}} (and valid sources for all styles may be set with {{CSP("style-src")}}).
Content-Security-Policy: style-src-attr 'none';
Content-Security-Policy: style-src-attr <source-expression-list>;
This directive may have one of the following values:
'none'
<source-expression-list>
style-src-attr can be used in conjunction with {{CSP("style-src")}}:
Content-Security-Policy: style-src <source>;
Content-Security-Policy: style-src-attr <source>;
Given this CSP header:
Content-Security-Policy: style-src-attr 'none'
…the inline style applied to the element below will not be applied:
<div style="display:none">Foo</div>
The policy would also block any styles applied in JavaScript by setting the style attribute directly, or by setting {{domxref("CSSStyleDeclaration.cssText", "cssText")}}:
document.querySelector("div").setAttribute("style", "display:none;");
document.querySelector("div").style.cssText = "display:none;";
Style properties that are set directly on the element's {{domxref("HTMLElement/style", "style")}} property will not be blocked, allowing users to safely manipulate styles via JavaScript:
document.querySelector("div").style.display = "none";
Note that using JavaScript might independently be blocked using the {{CSP("script-src")}} CSP directive.
{{Specifications}}
{{Compat}}