首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在一些HTML标记为XSS转义后取消转义

在一些HTML标记为XSS转义后取消转义
EN

Stack Overflow用户
提问于 2011-06-01 00:07:41
回答 7查看 2.6K关注 0票数 2

我在数据库中存储了html,我需要将它输出到页面中。

  • 如果我不转义()它,那么我就得到了我想要的粗体格式,但是我冒着从未转义的html源代码获得XSS的风险。
  • 如果我转义()它,那么它将显示原始的html代码<b>bold text</b>,而不是粗体文本

除了一些标签之外,我怎么能逃避一切呢?我正在考虑应用转义(),然后搜索<b></b>并取消它们。那能行吗?你看到它有安全问题吗?我也不确定如何搜索<b></b>标记。可能是为了这个还是怎么的?

P.S.我的意思是转义()是Zend中的一个函数。我相信这相当于htmlspecialchars()

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-06-01 00:15:21

逃跑是一条路。如果您只需要从html转义中选择几个要转换回来的标记,那么您就不会遇到XSS漏洞。

解决方法标记在这方面没有任何优势,许多失败的BBcode解析器都证明了这一点。

(然而,使用HTMLPurifier代替来回转换可能是明智的。)

票数 1
EN

Stack Overflow用户

发布于 2011-06-01 00:14:10

如果数据库中的HTML来自您不信任的用户,您应该允许他们访问标价或类似的“安全”编辑环境,这样他们就可以准备他们想要的标记,而不允许注入HTML。

执行选择性筛选的尝试经常是错误的,攻击者无法插入恶意代码。所以不要让他们编写原始HTML。

票数 1
EN

Stack Overflow用户

发布于 2011-06-01 00:14:54

htmlspecialchars_decode()htmlspecialchars()的反面。可以取消转义,但是没有限制标记的参数。

如果html是由用户编写的,那是的坏主意:)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6194913

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档