内容安全策略(Content Security Policy下面简称CSP)是一种声明的安全机制,我们可以通过设置CSP来控制浏览器的一些行为,从而达到防止页面被攻击的目的。比如通过禁止内联的JavaScript脚本,来控制页面的脚本注入攻击。
CSP 的实质就是白名单制度,启用 CSP即开发者通过配置告诉客户端,哪些外部资源可以加载和执行,等同于对可使用资源设置白名单。具体的实现和执行全部由浏览器完成,开发者只需提供配置。
java中如何优雅的实现csp的控制呢?
@Configuration
public class ProtectRequestFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
// 通过此过滤器,可以对请求的header的值进行判断
response.setHeader("Content-Security-Policy", "default-src 'self';img-src * 'self' blob: data: ; font-src * data:;style-src * 'unsafe-inline';script-src 'self' ");//img-src 'self' blob: data: ;
// report-uri /cspReports");
response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("X-XSS-Protection", "1");
filterChain.doFilter(request, response);
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。