当前位置: 首页 > news >正文

龙华建网站多少钱dw网页制作教程ppt

龙华建网站多少钱,dw网页制作教程ppt,早晨网站建设,宁波网站建设ysdsh有这样一个场景,首先构建一个docx文件并插入超链接(恶意的链接),上传到文件服务器后获取对应的文件filekey。现在我们提供一个预览接口,通过filekey便可以预览,在根据filekey转html文档返回给页面的时候由于…

        有这样一个场景,首先构建一个docx文件并插入超链接(恶意的链接),上传到文件服务器后获取对应的文件filekey。现在我们提供一个预览接口,通过filekey便可以预览,在根据filekey转html文档返回给页面的时候由于插入的超链接成功触发XSS攻击;

        初始预览接口代码示例如下:

@GetMapping(value = "/wordConvertHtml/{fileKey}")@ApiImplicitParam(name = "fileKey", value = "文件唯一key", required = true)public void wordConvertHtml(@PathVariable String fileKey, HttpServletResponse response) throws IOException {OutputStream bos = null;try {InputStreamVO inputStreamVO = commonFileService.getInputStreamWithAuthCheck(fileKey);Document doc = new Document(inputStreamVO.getInputStream());HtmlSaveOptions opts = new HtmlSaveOptions(SaveFormat.HTML);opts.setExportXhtmlTransitional(true);opts.setExportImagesAsBase64(true);opts.setExportPageSetup(true);opts.setPrettyFormat(true);}catch (FileCorruptedException e) {log.error("word转换HTML发生特定异常:{}", e);// 给前端提示特殊信息PrintWriter out = new PrintWriter(bos);out.println("文件含有特殊格式,系统不兼容。");out.flush();out.close();} catch (Exception e) {log.error("word转换HTML异常", e);// 给前端提示信息response.setContentType("text/html; charset=UTF-8");PrintWriter out = new PrintWriter(bos);out.println(e.getMessage());out.flush();out.close();} finally {if (bos != null) {bos.close();}}}

处理方式:

       添加更全面的安全头设置:确保所有可能返回HTML内容的路径都设置了适当的安全头

1.Content-Security-Policy (CSP)

response.setHeader("Content-Security-Policy", "default-src 'none'; script-src 'none'; style-src 'unsafe-inline'; img-src data:;");

这是一个重要的安全特性,用于防止跨站脚本攻击(XSS)、点击劫持等攻击:

  • default-src 'none': 默认情况下不允许从任何源加载资源
  • script-src 'none': 不允许执行任何JavaScript代码
  • style-src 'unsafe-inline': 允许内联样式(如<style>标签和style属性)
  • img-src data:: 只允许通过data URI加载图片

这种配置可以有效防止恶意脚本注入,同时允许内联样式和内嵌图片显示。

2.X-Content-Type-Options

response.setHeader("X-Content-Type-Options", "nosniff");

防止浏览器尝试猜测或"嗅探"响应的内容类型:

  • 浏览器会严格按照服务器提供的Content-Type头来处理内容
  • 防止某些类型的攻击,比如将JavaScript文件当作图片显示

3.X-Frame-Options

response.setHeader("X-Frame-Options", "DENY");

防止页面被嵌入到iframe中,用于防止点击劫持攻击:

  • DENY: 页面不能被嵌入到任何iframe中
  • 这可以防止恶意网站将你的页面嵌入到他们的网站中进行钓鱼攻击

4.X-XSS-Protection

response.setHeader("X-XSS-Protection", "1; mode=block");

启用浏览器的内置XSS过滤器:

  • 1: 启用XSS过滤
  • mode=block: 当检测到XSS攻击时,浏览器会阻止整个页面加载,而不是仅仅过滤掉可疑内容

最后统一对错误进行处理,这样安全等级会更高。


@GetMapping(value = "/wordConvertHtml/{fileKey}")
@ApiImplicitParam(name = "fileKey", value = "文件唯一key", required = true)
public void wordConvertHtml(@PathVariable String fileKey, HttpServletResponse response) throws IOException {OutputStream bos = null;try {bos = response.getOutputStream();response.setHeader("Content-Security-Policy", "default-src 'self'; script-src 'none'; style-src 'self' 'unsafe-inline';");response.setHeader("X-Content-Type-Options", "nosniff");response.setHeader("X-Frame-Options", "DENY");response.setHeader("X-XSS-Protection", "1; mode=block");InputStreamVO inputStreamVO = commonFileService.getInputStreamWithAuthCheck(fileKey);Document doc = new Document(inputStreamVO.getInputStream());HtmlSaveOptions opts = new HtmlSaveOptions(SaveFormat.HTML);opts.setExportXhtmlTransitional(true);opts.setExportImagesAsBase64(true);opts.setExportPageSetup(true);opts.setPrettyFormat(true);doc.save(bos, opts);} catch (FileCorruptedException e) {log.error("word转换HTML发生特定异常:{}", e);// 给前端提示特殊信息// 设置安全响应头response.setContentType("text/html; charset=UTF-8");response.setHeader("Content-Security-Policy", "default-src 'none'; script-src 'none';");response.setHeader("X-Content-Type-Options", "nosniff");response.setHeader("X-Frame-Options", "DENY");PrintWriter out = new PrintWriter(bos);out.println("文件含有特殊格式,系统不兼容。");out.flush();out.close();} catch (Exception e) {log.error("word转换HTML异常", e);// 给前端提示信息// 设置安全响应头response.setContentType("text/html; charset=UTF-8");response.setHeader("Content-Security-Policy", "default-src 'none'; script-src 'none';");response.setHeader("X-Content-Type-Options", "nosniff");response.setHeader("X-Frame-Options", "DENY");PrintWriter out = new PrintWriter(bos);out.println(HtmlUtils.htmlEscape(e.getMessage()));out.flush();out.close();} finally {if (bos != null) {bos.close();}}
}

http://www.dtcms.com/a/459507.html

相关文章:

  • 微信小程序与网站连接个人备案做电影网站
  • 网站用户体现好坏wordpress给文章添加子页面
  • 萍乡做网站的公司58找工作 招聘网最新招聘
  • 企业网站排名提升软件智能优化通城网站建设
  • 怎么可以做网站的网站网站正在升级建设中源码
  • 洛阳网站建设多少钱各大网站平台发布信息
  • 开网络网站建设公司的优势深色网站
  • 定制网站开发一般多少钱青岛市建设厅网站
  • 私人网站建设成本十大正规交易平台排名
  • word做网站框架资料共享的网站开发
  • 做app好还是响应式网站做网络推广教程
  • 优化设计官方网站word和the wordpress
  • 中文外贸网站建设青海省住房和城乡建设厅门户网站
  • 网站类型分析网站建设 小程序开发
  • 静态html网址网站导航源码go语言网站开发教程
  • 做彩票网站电话多少钱杭州微信小程序外包
  • 网站投注建设财经门户网站建设
  • 根据网站做软件深圳哪个区最好
  • 网站建设 顺德腾讯域名邮箱
  • 潍坊seo培训巩义网站推广优化
  • 建网站一定要备案吗推广是什么职业
  • 为网站开发网站红蓝色配色分析
  • 基于Python的高效数据可视化实战指南
  • 998元网站建设优化做网站三网多少钱
  • 建设银行网站修改手机号码网站建设功能选择表
  • 山西 网站建设ui设计公司排名
  • 东莞市营销网站建设万能视频下载工具
  • 代写企业软文湖南优化网站建设
  • 桂林昨晚发生的新闻上海网络企业优化公司
  • 在淘宝上的毕设网站代做政务门户网站建设方案