qtextedit向html的转换中,允许用户向QTextEdit添加原始的HTML文本是安全的?_qt_开发99编程知识库...

我无法确定所有这些标签是否可以安全我创建了这个简单的函数,除了用户指定的安全标记:QString SafeHtml(QString text)

{

QString result;

QStringList AllowedTags;

AllowedTags <

//we split the text by starting element

QStringList Part = text.split('

bool FirstPart = true;

foreach (QString part, Part)

{

//split removes the symbol we use to split by so we need to return it back there

if (FirstPart)

FirstPart = false;

else

part ="

//if there is no closing we don't want to render this tag

if (!part.contains(">"))

{

result += part.toHtmlEscaped();

continue;

}

//now we need to find what tag it is

QString tag = part.mid(1, part.indexOf(">") - 1);

if (tag.startsWith("/"))

tag = tag.mid(1);

if (tag.contains(""))

{

//this is some composite tag

tag = tag.mid(0, tag.indexOf(""));

}

if (!AllowedTags.contains(tag))

part = part.toHtmlEscaped();

result += part;

}

return result;

}

它不处理未封闭的html标签,所以如果有人添加了 ,它可能会把所有剩余的文本变成粗体等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值