是否可以配置Wildfly(10个或更多)发送给客户端的Http标头,仅用于配置以下内容:
HTTPS严格传输安全性(HSTS) X-XSS保护 X框架选项 严格的运输安全 内容安全政策 X-Content-Type-Options
我有一个配置文件(standalone.xml),其中包含所有配置。我需要在此处添加标头的配置。
答案 0 :(得分:1)
在@merly的响应中添加更多信息。
这些是设置安全标头以防止非法尝试修改/读取信息时应用程序的一些最佳实践。
内容安全政策(CSP)
此标头限制了浏览器从中加载资源的源,包括脚本,样式和媒体。通过仅允许信任源和安全HTTPS通道,此标头可以帮助防止XSS和嗅探攻击。
对于仅从单个Web应用程序服务器加载资源的站点,请将CSP标头配置为仅允许来自该服务器的所有资源类型的资源。如果资源是从其他受信任来源加载的,请创建一个更具体的CSP标头。
<filter-ref name="Content-Security-Policy"/>
<response-header name="Content-Security-Policy" header-name="Content-Security-Policy" header-value="default-src 'self'"/>
X内容类型选项
该标头告诉浏览器不要通过其内容来推断资源类型,而应坚持应用程序广告的内容类型。这样可以防止浏览器将非可执行内容转换为可执行内容,从而减轻XSS等漏洞。
<filter-ref name="x-content-type-options"/>
<response-header name="x-content-type-options" header-name="X-Content-Type-Options" header-value="nosniff"/>
X框架选项
如果设置了此标头,则不允许在跨域URL中打开应用程序。
<filter-ref name="x-frame-options"/>
<response-header name="x-frame-options" header-name="X-Frame-Options" header-value="SAMEORIGIN"/>
答案 1 :(得分:0)
<subsystem xmlns="urn:jboss:domain:undertow:6.0" default-server="default-server" default-virtual-host="default-host" default-servlet-container="default" default-security-domain="other">
<buffer-cache name="default"/>
<server name="default-server">
<http-listener name="default" socket-binding="http" max-parameters="10000" redirect-socket="https" enable-http2="true"/>
<https-listener name="https" socket-binding="https" security-realm="ApplicationRealm" enable-http2="true"/>
<host name="default-host" alias="localhost">
<location name="/" handler="welcome-content" predicate="not exists[%{o,Content-Security-Policy}]"/>
<http-invoker security-realm="ApplicationRealm"/>
<filter-ref name="Content-Security-Policy"/>
<filter-ref name="x-frame-options"/>
<filter-ref name="x-xss-protection"/>
<filter-ref name="x-content-type-options"/>
<!--filter-ref name="content-security-policy"/-->
<filter-ref name="strict-transport-security"/>
<filter-ref name="my-custom-header"/>
</host>
</server>
<servlet-container name="default">
<jsp-config/>
<websockets/>
</servlet-container>
<handlers>
<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
</handlers>
<filters>
<response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
<response-header name="Content-Security-Policy" header-name="Content-Security-Policy" header-value="default-src 'self'"/>
<response-header name="x-frame-options" header-name="X-Frame-Options" header-value="SAMEORIGIN"/>
<response-header name="x-xss-protection" header-name="X-XSS-Protection" header-value="1; mode=block"/>
<response-header name="x-content-type-options" header-name="X-Content-Type-Options" header-value="nosniff"/>
<!--response-header name="content-security-policy" header-name="Content-Security-Policy" header-value="default-src https:"/-->
<response-header name="strict-transport-security" header-name="Strict-Transport-Security" header-value="max-age=31536000; includeSubDomains;"/>
<!-- Add line below -->
<response-header name="my-custom-header" header-name="my-custom-header" header-value="my-custom-value"/>
</filters>
</subsystem>