Tag: 带标签

使用PHP substr()和strip_tags(),同时保留格式并且不破坏HTML

我有各种不同的HTMLstring可以切割成100个字符(剥离的内容,而不是原始的),没有剥离标签,也不会破坏HTML。 原始HTMLstring (288个字符): $content = "<div>With a <span class='spanClass'>span over here</span> and a <div class='divClass'>nested div over <div class='nestedDivClass'>there</div> </div> and a lot of other nested <strong><em>texts</em> and tags in the air <span>everywhere</span>, it's a HTML taggy kind of day.</strong></div>"; 标准修剪:修剪为100个字符和HTML中断,剥离的内容可达40个字符: $content = substr($content, 0, 100)."…"; /* output: <div>With a <span class='spanClass'>span over here</span> and […]

strip_tags()容易受到脚本攻击吗?

是否有一个已知的XSS或其他攻击,使其通过一个 $content = "some HTML code"; $content = strip_tags($content); echo $content; ? 手册有一个警告: 此function不会修改您允许使用allowable_tags的标签上的任何属性,包括恶作剧的用户在发布将显示给其他用户的文本时可能会滥用的样式和onmouseover属性。 但是这与仅使用allowable_tags参数有关。 没有设置允许的标签 , strip_tags()容易受到攻击? Chris Shiflett似乎说这是安全的: 使用成熟的解决scheme 如果可能,请使用成熟的现有解决scheme,而不是尝试创build自己的解决scheme 像strip_tags()和htmlentities()这样的函数是很好的select。 它是否正确? 请尽可能引用来源。 我知道关于HTML净化器,htmlspecialchars()等 – 我不是在寻求最好的方法来消毒HTML。 我只想知道这个具体问题。 这是一个理论上的问题。 参考: PHP源代码中的strip_tags()实现