WP Manifestindependent plugin directory
manifest / content / wp-douban

WP-Douban WP Registry grade C-. High-severity findings · 1 findingWP RegistryHigh-severity findings · 1 findingOpen the reportC-

🎬 📖 🎵 🎮 manage your movie / book / music / game records

★ 125stars
v4.5.0latest · 8mo ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/bigfa/wp-douban/archive/refs/heads/master.zip
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

wp-douban 4.0

可以以豆列的方式展示电影、图书、音乐。

数据本地化,解决豆瓣接口失效及图片防盗链。

last version 4.5.0

快速配置

帮助文档

插入方式

豆瓣链接

直接在文章中粘贴豆瓣 url 即可。

图书展示

https://book.douban.com/subject/34481379

音乐专辑展示

https://music.douban.com/subject/6816154

电影展示

https://movie.douban.com/subject/1292001

游戏展示

http://www.douban.com/game/26817171/

舞台剧展示

https://www.douban.com/location/drama/11519197/

TMDB 链接

电影展示

https://www.themoviedb.org/movie/667538-transformers-rise-of-the-beasts

剧集展示

https://www.themoviedb.org/tv/1416-grey-s-anatomy

Releases

3 releases.

Tag
Published
v4.5.0 latest
Feb 7, 2026 8mo ago
Dec 24, 2024 1 year ago
Dec 1, 2023 2 years ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.

C- grade

Security

WP-Douban 4.5.0 · audited by WP Registry

High-severity findings.

1 high
Audited release
4.5.0
Findings
1
Worst severity
high
Content hash
584e7897e710943f53656141…

Findings

  • high Author/Contributor stored XSS via unescaped [wpd] and [wpc] shortcode attributes

    xss_stored

    add_shortcode('wpd') and add_shortcode('wpc') pass attacker-controlled shortcode atts straight into HTML. list_shortcode() explode()s types and forwards $style to render_template(); list_collection() forwards type/start/end/status/style to render_collection(). Neither sanitizes. render_collection() concatenates all five values into data-status/data-type/data-start/data-end/data-style double-quoted attributes. render_template() concatenates $style into the db--list class name and, when types has a single value, interpolates $include_types[0] into data-type='...'. WordPress kses does not inspect shortcode attribute text, so users without unfiltered_html (Author on single-site; Author/Editor/Contributor on multisite) can persist payloads that become real markup on the_content. Concrete path: an Author publishes [wpd style='"><img src=x onerror=alert(document.domain)>'] producing <div class="db--list db--list__"><img src=x onerror=alert(document.domain)>">, or [wpc type='"><script>alert(document.domain)</script>'] producing a data-type=" breakout that inserts a live <script>. Both execute in the site origin for every visitor of that post (and for an administrator who previews a Contributor draft). Nav labels for allowlisted types are esc_attr/esc_html, but the $only/$style paths and the entire [wpc] renderer were not included in the 4.5.0 admin hotfix.

    src/functions.php:50-79,146-191

    Recommendation

    Escape every shortcode attribute at output: esc_attr() on type/status/style/start/end and on $include_types[0]. Allowlist types to movie|music|book|game|drama and style to a known class suffix (e.g. card) before concatenation. Do not use extract(). Optionally reject unknown atts. assets/js/db.js should also stop assigning REST name/link/poster/remark to innerHTML (use textContent or a sanitized template) so poisoned catalog rows cannot DOM-XSS the same pages.

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.