forked from GNUsocial/gnu-social
Ticket #2244: fix to interpretation of escaped HTML and plaintext Atom content on incoming OStatus messages.
We were double-unescaping for <content type="html">, turning <b> escaped chars into literal tags (which then may get removed entirely by the HTML scrubber).
This commit is contained in:
parent
5d1295f233
commit
55a54d6f6a
@ -458,11 +458,14 @@ class ActivityUtils
|
|||||||
// slavishly following http://atompub.org/rfc4287.html#rfc.section.4.1.3.3
|
// slavishly following http://atompub.org/rfc4287.html#rfc.section.4.1.3.3
|
||||||
|
|
||||||
if (empty($type) || $type == 'text') {
|
if (empty($type) || $type == 'text') {
|
||||||
return $contentEl->textContent;
|
// Plain text source -- let's turn it into HTML!
|
||||||
|
return htmlspecialchars($contentEl->textContent);
|
||||||
} else if ($type == 'html') {
|
} else if ($type == 'html') {
|
||||||
$text = $contentEl->textContent;
|
// The XML text decoding gives us an HTML string ready to roll.
|
||||||
return htmlspecialchars_decode($text, ENT_QUOTES);
|
return $contentEl->textContent, ENT_QUOTES;
|
||||||
} else if ($type == 'xhtml') {
|
} else if ($type == 'xhtml') {
|
||||||
|
// Embedded XHTML; we have to pull it out of the document tree,
|
||||||
|
// then serialize it back out to an HTML fragment string.
|
||||||
$divEl = ActivityUtils::child($contentEl, 'div', 'http://www.w3.org/1999/xhtml');
|
$divEl = ActivityUtils::child($contentEl, 'div', 'http://www.w3.org/1999/xhtml');
|
||||||
if (empty($divEl)) {
|
if (empty($divEl)) {
|
||||||
return null;
|
return null;
|
||||||
|
Loading…
Reference in New Issue
Block a user