Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
防止Javascript注入(但保留文本格式和图像)_Javascript_Asp.net Mvc - Fatal编程技术网

防止Javascript注入(但保留文本格式和图像)

防止Javascript注入(但保留文本格式和图像),javascript,asp.net-mvc,Javascript,Asp.net Mvc,(如果存在这种情况,我深表歉意,但我还没有看到对这种阻止java脚本注入的风格的回应) 细节:所有处理都在服务器端 我希望我的用户能够发布HTML标签,但我正在寻找一种方法来限制可以使用哪些标签和效果是否有任何在线解决方案?(我不想对我的用户内容进行编码 是: 文本+格式 链接 列表 图像 否: CSS:按引用、按标记或内联 JS:按引用、按标记或内联 IFrames 物体 有什么想法吗?当我在客户端执行sanitize时,我倾向于使用sanitize.js-我相信它包含了您需要的所有内容,还有

(如果存在这种情况,我深表歉意,但我还没有看到对这种阻止java脚本注入的风格的回应)

细节:所有处理都在服务器端

我希望我的用户能够发布HTML标签,但我正在寻找一种方法来限制可以使用哪些标签和效果是否有任何在线解决方案?(我不想对我的用户内容进行编码

是:

  • 文本+格式
  • 链接
  • 列表
  • 图像
  • 否:

  • CSS:按引用、按标记或内联
  • JS:按引用、按标记或内联
  • IFrames
  • 物体

  • 有什么想法吗?

    当我在客户端执行sanitize时,我倾向于使用sanitize.js-我相信它包含了您需要的所有内容,还有更多内容


    当我在客户端执行Sanitation时,我倾向于使用sanitaze.js-我相信它包含了您想要的所有内容和更多内容


    您可以使用HtmlAgilityPack将来自用户的输入解析为HTML,并轻松检测和删除不需要的标记


    您可以使用HtmlAgilityPack将来自用户的输入解析为HTML,并轻松检测和删除不需要的标记


    我正在考虑将消息包装在一个基本的XML标记中,确保它能够解析,并提取一些特定的标记(脚本、iframe等),删除除已知允许的属性之外的所有属性,如[a href]或[img src tag]-->并将所有错误返回给用户(这也有助于保证html的正确格式)(打开/关闭标记),等等)你的服务器端语言是什么?是一个C#的自定义模块,类似于PHP
    strip#u标记
    。它需要一个字符串并删除除白名单外的所有标记…我正在考虑用基本XML标记包装消息,确保它解析,并提取一些特定的标记(脚本、iframe等)以及删除除已知允许的属性(如[a href]或[img src tag]-->之外的所有属性,并将所有错误返回给用户(还有助于确保html(打开/关闭标记)的正确格式),等等)你的服务器端语言是什么?是一个C的自定义模块,类似于PHP
    strip#u标签
    。它接受一个字符串并删除除白名单外的所有标签……我认为OP希望服务器端环境卫生:“所有处理都在服务器端。”…没问题。这是一个非常好的解决方案。我必须记下它来进一步研究。我研究服务器端的原因是内容被清理一次,然后被信任。而且我不必强迫客户端继续重新处理任何修复。(另外,因为我一开始就不相信输入是干净的)老实说,在此之前我还没有考虑过消毒。我也会研究一下,但现在我将把问题留给服务器端解决方案。--谢谢:)我认为OP需要服务器端卫生:“所有的处理都在服务器端。”…没问题。这是一个非常好的解决方案。我必须记下它来进一步研究。我研究服务器端的原因是内容被清理一次,然后被信任。而且我不必强迫客户端继续重新处理任何修复。(另外,因为我一开始就不相信输入是干净的)老实说,在此之前我没有考虑过清理。我也会研究这个问题,但现在我将把这个问题留给服务器端解决方案。--谢谢:)我已经使用过这个问题并考虑过了,但我想避免它,因为它处理不正确HTML格式的能力会带来额外的处理要求。除此之外,这仍然是一个有效的解决方案。谢谢我曾经使用过它,并且考虑过它,但是我想避免它,因为它处理不正确的HTML格式的能力会带来额外的处理需求。除此之外,这仍然是一个有效的解决方案。谢谢