在html中查看内联内嵌

时间:2015-10-11 03:51:09

标签: html web xss

这是一个与用户群较小的内部网站相关的问题。它用于用户之间的线程对话(如论坛),但它都是定制的,包含一些业务逻辑。允许用户上传附件。其他用户在视图中可以看到这些附件的链接,可以使用该链接下载。

我想添加一项新功能来内联显示图片,而不是显示链接。我考虑过发送一个图片标签,其中source属性设置为附件的位置。

我的问题是,这对XSS攻击是开放的。用户可能上传具有png扩展名的javascript文件,而image标签将在资源加载时执行javascript。

如果相关,后端正在运行基于python的Web服务器,前端主要是普通的html / javascript。

防止攻击此系统的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

最好的办法是使用OWASP XSS Prevention Cheat Sheet并遵循他们的规则:

  
      
  • 规则#0 - 从不插入不受信任的数据,但不包括在允许的位置
  •   
  • 规则#1 - 将不受信任的数据插入HTML元素内容之前的HTML转义
  •   
  • 规则#2 - 将不受信任的数据插入HTML公共属性之前的属性转义
  •   
  • 规则#3 - 在将不受信任的数据插入JavaScript数据值之前将JavaScript转义

         
        
    • 规则#3.1 - HTML转义HTML上下文中的JSON值并使用JSON.parse读取数据
    •   
  •   
  • 规则#4 - 在将不受信任的数据插入HTML样式属性值之前进行CSS转义并严格验证
  •   
  • 规则#5 - 将不受信任的数据插入HTML URL参数值之前的URL转义
  •   
  • 规则#6 - 使用专为工作设计的库来清理HTML标记
  •   
  • 规则#7 - 防止基于DOM的XSS
  •   
  • 奖金规则#1:使用HTTPOnly cookie flag
  •   
  • 奖金规则#2:实施内容安全政策
  •   
  • 奖金规则#3:使用自动转义模板系统
  •   
  • 奖金规则#4:使用X-XSS-Protection响应标头
  •