• mingmeo
    Premium 与 富可敌国 会员
    ID neo_premium版本 2.5.0插件制作者 mingmeo免费1334 行 / 59.1 KBHook / 路由 / 后台页
    限制普通用户发帖、回帖长度以及每日发帖/回帖数,Premium 不受限,同时有富可敌国高级会员体系。
    app/plugins/neo_premium/plugin.php
    开发日志最新 10 条

    此项目接受所有登录用户协助维护和提交更新。

    • banming
      banming
      版本 2.5.0 ecb7be23eaf3 更新:# v2.5.0 - 安全性修补 - 修复头衔渲染release
    • banming
      banming
      版本 2.4.0 7e6a91974923 更新:# v2.4.0 - 安全性优化 - UI优化 - 代码规范性 > 使用 Codex 跑了几个小时,并进行了安全审计
    • banming
      banming
      版本 2.2.3 caa1b20f87f6 更新:# v2.2.3 - 修复「编辑豁免」失效 - 修复用户会员徽标 CSS 样式问题
    • banming
      banming
      版本 2.2.2 62cec476d8af 更新:- 头衔不再使用颜色变量
    • banming
      banming
      版本 2.2.1 a0fd7bd8cdea 更新:# 2.2.1 - 修复安全性问题 - 对商城作更强安全防护 - 让 UI 遵循论坛[设计规范↗](https://bbs1.org/dev_docs) > 此版本提供了重要安全更新,建议所有正在使用的用户更新
    • banming
      banming
      版本 2.1.5 248b64370ea9 更新:- 更新「会员商城」入口链接标题为“富可敌国” @bbs1org 相关功能已实现。
    • banming
      banming
      版本 2.1.4 2583f5440cc6 更新:- 修复个人菜单中「会员商城」选项没有图标
    • banming
      banming
      版本 2.1.3 6ada376f4c29 更新:- 性能优化 - 文案优化 - UI 优化
    • banming
      banming
      版本 2.1.2 77b23f22d97a 更新:fix bugs
    • banming
      banming
      版本 2.1.2 c59f6e144aed 更新:# v2.1.2 - 修复 Premium 与 富可敌国 会员头衔显示
    主楼
  • 质量报告

    插件质量报告

    插件:neo_premium

    Hook功能范围循环使用频率文件读写修改系统表读写系统表读写自己的表
    page.footer全站页面页脚否5--app_users读 plugin_neo_premium_users, plugin_neo_premium_super_users
    sidebar.feature_links首页/侧栏快捷功能否5---读 plugin_neo_premium_config
    user.menu_links个人卡片/移动端我的菜单(展示位置:个人卡片)否4---读 plugin_neo_premium_config
    reply.before_save回帖发布/编辑表单提交否3--app_replies读 plugin_neo_premium_users, plugin_neo_premium_config
    topic.before_save主题发布/编辑表单提交否3--app_topics读 plugin_neo_premium_users, plugin_neo_premium_config

    颜色说明:黄色表示有数据读写,红色表示 Hook 在系统循环中执行,浅蓝色表示有文件写入。“列表跳过”表示回调在列表路径会提前返回,“回调内”表示操作位于回调自身或其帮助函数的循环体内。“文件批处理”表示逐个处理用户一次提交的文件,属于必要操作,不标记修正。只有操作实际处于需要优化的循环路径时,才会标记“修正❗️”。

    数据字典

    plugin_neo_premium_users

    字段类型可空默认值约束
    user_iduint否-唯一
    expire_atuint否0-
    granted_byuint否--
    granted_atuint否--

    plugin_neo_premium_super_users

    字段类型可空默认值约束
    user_iduint否-唯一
    expire_atuint否0-
    granted_byuint否--
    granted_atuint否--

    plugin_neo_premium_config

    字段类型可空默认值约束
    config_keykey否-唯一
    config_valuestring否--

    plugin_neo_premium_products

    字段类型可空默认值约束
    idid否-主键、自增
    nameVARCHAR(80)否--
    descriptionTEXT否--
    product_typeVARCHAR(20)否'premium'-
    price_pointsuint否--
    duration_daysuint否0-
    is_enableduint否1-
    created_atuint否--

    plugin_neo_premium_purchases

    字段类型可空默认值约束
    idid否-主键、自增
    user_iduint否--
    product_iduint否--
    expire_atuint否0-
    purchased_atuint否--
    #1
  • mingmeo

    版本 1.0.0 更新:

    NEO_PREMIUM Premium 会员

    简介

    增加 Premium 会员,管理员可设置非 Premium 会员回复字数限制等等诸多限制项。

    支持功能

    • 限制普通用户
    • 管理员授予/撤销用户 Premium 资格
    • 支持开放积分兑换会员
    • 管理积分兑换商品
    #2
  • mingmeo

    相关截图

    paste-20260816-001834.png
    paste-20260816-001923.png
    paste-20260816-002056.png
    paste-20260816-003004.png

    最后由 mingmeo 编辑于 2026-08-16 00:30
    #3
  • uscncn

    那不得加个富可敌国功能

    #4
  • mingmeo

    明天就做

    #5
  • Moo

    @秦始黄 加个这个。。。给我弄一个,哈哈😆

    #6
  • 秦始黄

    不利用平权吧 哈哈 暂时不考虑

    #7
  • 秦始黄

    会被骂的

    #8
  • Moo

    也确实,论坛里面真是什么人都有。刚刚看到一个帖子说某个管理员走了,就得出一个结论说论坛完了。哎。。。咱们现在的孩子都怎么了?真是有点莫名其妙的感觉。

    #26
  • mingmeo

    版本 2.0.0 更新:

    v2.0.0

    • 修复商城瑕疵
    • 增加 富可敌国 会员

    富可敌国

    身份的象征,具体制度需由管理员自主管理。

    #9
  • 秦始黄

    这个必须人民币充值才能开通了 哈哈哈 最少680刀一年

    #11
  • mingmeo

    哈哈哈 管理页面可以配置商城 删除商品就只能管理颁发

    #12
  • mingmeo

    @uscncn @Moo 已更新富可敌国。

    更多截图

    paste-20260816-121453.png

    #10
  • bbs1org

    插件后台 前台的Ui 需要进一步打磨

    #14
  • mingmeo

    ok

    #17
  • bbs1org

    我开一下试试

    #13
  • bbs1org

    而且用户怎么全都有了?

    #15
  • mingmeo

    截个图看看

    #16
  • mingmeo

    问题已定位 所有用户昵称后面会显示当前登陆账号的头衔,正在进行修复

    #22
  • bbs1org

    @banming 而且页面查询增加很多。确保一个查询实现,尤其是不要循环中查询

    #18
  • mingmeo

    收到

    #19
  • mingmeo

    v2.1.0

    • 数据库查询性能优化 访问帖子最多查询 2 次
    • 管理页面与商城 UI 优化

    最后由 mingmeo 编辑于 2026-08-16 12:52
    #20
  • mingmeo

    v2.1.1

    • 文案修改与优化

    最后由 mingmeo 编辑于 2026-08-16 12:52
    #21
  • mingmeo

    v2.1.2

    • 修复 Premium 与 富可敌国 会员头衔显示

    @bbs1org 问题已修复

    最后由 mingmeo 编辑于 2026-08-16 14:35
    #23
  • mingmeo

    v2.1.3

    • 性能优化
    • 文案优化
    • UI 优化

    最后由 mingmeo 编辑于 2026-08-16 14:50
    #25
  • uscncn

    右侧缺少icon
    paste-20260816-160803.png

    #27
  • mingmeo

    感谢反馈,正在进行调查。

    #28
  • mingmeo

    v2.1.4

    • 修复个人菜单中「会员商城」选项没有图标

    @uscncn 相关问题已修复,感谢您的反馈。

    最后由 mingmeo 编辑于 2026-08-16 17:29
    #29
  • bbs1org

    会员商场有点搞不清,不如就叫富可敌国

    #30
  • mingmeo

    v2.1.5

    • 更新「会员商城」入口链接标题为“富可敌国”

    @bbs1org 相关功能已实现。

    最后由 mingmeo 编辑于 2026-08-16 17:58
    #31
  • 350

    🔍 插件审查报告(对照《AI 开发规则》与开发者文档)

    🔒 安全问题

    高危:plugin.php:371 在页面开头读 $points,421 用旧值判「积分不足」,443-473 先授予会员再 user_points_change() 扣分,两者不在同一事务且 user_points_change 自带事务、不拦负余额。并发请求可重复通过余额校验,导致负积分或免费开通会员。建议整体包进一个 tx(),事务内重取实时余额并用 points >= price 条件 UPDATE 扣减(受影响 0 行则报积分不足),且 tx 内不要调用 user_points_change()。
    低:plugin.php:510-524 check_users 的 usernames[] 无数量上限,可放大 IN 查询并回传任意用户会员态,建议限数量并做结果缓存。

    ⚡ 性能问题

    低:plugin.php:221-337 每个登录用户每页都注入脚本并 POST 一次 check_users,再对全页用户名做一次查询,建议请求级缓存或按需请求。

    🐛 功能/规范缺陷

    中:daily_topic_limit/daily_reply_limit 有配置、有后台、描述也写了,但 before_save 只校验长度,每日限额从未实现,建议补实现或移除该配置。
    中:plugin.php:189、205 依赖 $ctx['editing']/$ctx['user_id'],但核心 topic/reply.before_save 只传 id/action,导致「编辑豁免」永远不生效、编辑也会被长度限制。
    中:plugin.php:51-54 直接 ALTER TABLE 加列,应用 app_db_ensure_columns。
    低:CSS 大量写死字号与色值,建议改 --font-size-* 与系统状态色变量。

    ✅ 修复优先级

    1. 高危:兑换流程事务化并原子扣积分。
    2. 中:补/删每日限额;修正 before_save 的 ctx 判断;ALTER 改 ensure_columns。
    3. 低:限流并缓存 check_users、CSS 变量化。
    #32
  • mingmeo

    2.2.1

    • 修复安全性问题
    • 对商城作更强安全防护
    • 让 UI 遵循论坛设计规范↗

    此版本提供了重要安全更新,建议所有正在使用的用户更新

    最后由 mingmeo 编辑于 2026-08-18 12:06
    #33
  • mingmeo

    v2.2.2

    • 头衔不再使用颜色变量

    最后由 mingmeo 编辑于 2026-08-18 12:42
    #34
  • 350

    🔍 复核报告(v2.2.2,回应此前审查)· @banming

    ✅ 已确认修复

    1. 高危积分竞态:兑换已整体包进 tx()(plugin.php:503),事务内 UPDATE app_users SET points=points-? WHERE id=? AND points>=?(plugin.php:522)并以 rowCount()===0 报积分不足(plugin.php:523)——原子扣减、不产生负余额,且不再在事务内调 user_points_change()。
    2. check_users 数量上限:已截断到 100(plugin.php:601-603)。
    3. 每日限额已实现:daily_topic_limit/daily_reply_limit 在 before_save 内计数拦截(plugin.php:229-235、255-261)。
    4. 直接 ALTER TABLE 已改 app_db_ensure_columns()(plugin.php:49-51)。

    ❌ 未生效 / 新问题

    「编辑豁免」仍失效(关键):$is_edit 写成 ($ctx['action'] ?? '') === 'edit' || (!empty($topic['id']) && ...)(plugin.php:216),回帖同款(plugin.php:242)。但核心 topic.before_save 只传 ['id'=>...,'action'=>...],action 取值是 delete/pin/unpin/highlight/mute_author、从无 'edit';而 $topic/$reply 是值数组(['title','body','forum_id'] / ['body','topic_id']),根本没有 'id' 键。两条件恒假 → 编辑仍被长度/每日限额限制。一行修复:$is_edit = (int)($ctx['id'] ?? 0) > 0;。

    💡 顺带建议

    徽章渐变写成空值 linear-gradient(90deg, , , , , ) 且 -webkit-text-fill-color:transparent(plugin.php:930、941),徽章文字会透明不可见;另有 color: ; 空值(plugin.php:1043、1047、1055、1073)。check_users 的 array_filter 未 array_values(plugin.php:600),攻击者发 usernames[x]= 字符串键会触发 PDO 绑定异常(500),建议补 array_values()。

    积分安全已修好,但编辑豁免还需改一行。

    #35
  • mingmeo

    v2.2.3

    • 修复「编辑豁免」失效
    • 修复用户会员徽标 CSS 样式问题

    最后由 mingmeo 编辑于 2026-08-18 16:42
    #36
  • idc

    能否添加穿戴功能,现在徽章渐变写成空值了。

    #37
  • mingmeo

    可以,
    关于「徽章渐变写成空值」能否具体告知一下在哪里,我这边看的是正常的
    paste-20260818-173613.png
    paste-20260818-173650.png

    #38
  • idc

    现在已经正常了

    #41
  • mingmeo

    感谢您的建议。经过评估,头衔佩戴功能可能不适合目前的 neo_* 插件体系,此功能可能不会实现,也可能在后续版本实现。

    #43
  • idc

    感谢!

    #46
  • 350

    🔍 复核报告(v2.2.3,回应 2.2.2 版审查)· @banming

    ✅ 已确认修复

    1. 编辑豁免:plugin.php:216、242 $is_edit=(int)($ctx['id']??0)>0,与核心 topic.before_save(index.php:2438 ctx 仅传 id/action)、reply.before_save(index.php:2524)对齐,编辑不再被长度/每日限额拦截。
    2. 积分竞态:503-571 整体包进 tx();522 行 UPDATE app_users SET points=points-? WHERE id=? AND points>=?,523 行 rowCount()===0 判余额不足,原子扣减无负余额。
    3. check_users 数量上限:602-604 截断到 100。
    4. 每日限额:229-235、255-261 已实现计数拦截。
    5. 直接 ALTER 改 app_db_ensure_columns():49-51。
    6. 徽章空渐变已补真实色值(931、942);color: 空值已补 #fff(1044/1048/1056/1074)。
    7. check_users 补 array_values():601。

    ❌ 未生效 / 新问题

    1. 【规范】page.footer 直接拼接整段内联 <script>(285-415),违反「固定 JS 只能经 manifest assets、动态值走 data-*」;且声明全局 window.neoCurrentUser(288)未用 neo_premium_ 前缀,另用 JS 动态注入 <style> 重复定义 @keyframes(295)。neo_premium_js()(1194-1201)实为空壳 IIFE。
    2. 【XSS-低危】275 行 json_encode(['username'=>me()['username']], JSON_UNESCAPED_UNICODE) 直接嵌入 <script>,未转义 </>;核心注册对用户名只限长不筛字符(index.php:2322),用户名含 </script> 会破坏脚本(本人会话自 XSS)。建议补 JSON_HEX_TAG|JSON_HEX_AMP。
    3. 【规范】依赖核心 DOM 类名 .post-author/.user-name/.notice-profile-name/.mobile-menu-link/.nav-mine/.user-card(319、327、373、381、391、399),违反「选择器限于插件根容器」,核心改类名即失效。
    4. 【功能】兑换扣积分用原始 UPDATE(522),绕过核心 user_points_change()(index.php:948),不触发 user.points_changed 事件(index.php:968),积分流水/风控类插件看不到这笔扣减(上轮为避嵌套事务的取舍,提示知悉)。
    5. 【规范】CSS 类名大量用 neo-(956、1033、1050、1098、1131、1153…),插件 ID 为 neo_premium,规范要求连字符形式 neo-premium-。
    6. 【轻微】管理端授予 days 无下限(661、684),负值经 144 行 $days>0 判假→写入永久。

    💡 顺带建议

    page.footer 每次对登录用户 2 次 DB 读(116-129、156-169,request 级缓存);feature_links/menu_links 各触发一次 config 全表读(94-107,共享缓存),量可接受。537-541 grant_user 与 app_db_upsert 双写冗余。

    总结:上一轮 8 项全部修复,无高危;剩余为规范类(内联脚本/全局变量/CSS 前缀/核心选择器)与一处自 XSS、积分流水旁路,建议下版统一 assets 化并加 JSON_HEX_TAG。

    #39
  • bbs1org

    插件的管理页面没有对移动端进行适配优化

    #40
  • mingmeo

    是授予页面吗?稍后修复

    #42
  • mingmeo

    v2.4.0

    • 安全性优化
    • UI优化
    • 代码规范性

    26/08/19 02:28 更新

    此版本存在重要问题:用户徽标不会渲染,将于下个版本修复

    最后由 mingmeo 编辑于 2026-08-19 02:29
    #44
  • bbs1org

    富可敌国 会员已开通
    您已成功兑换 富可敌国 会员,有效期至:永久。感谢您的支持!用户徽标不会渲染

    #45
  • mingmeo

    已知问题,GPT跑一半加了徽标限制,后面没额度了意外停止导致他没有测试

    #47
  • mingmeo

    问题已定位,正在进行修复。

    #48
  • mingmeo

    v2.5.0

    • 安全性修补
    • 修复头衔渲染
    • UI 优化

    @bbs1org 相关问题已修复

    最后由 mingmeo 编辑于 2026-08-19 14:20
    #49
  • 399

    🔍 插件审查报告(AI 自动审查,对照《AI 开发规则》与开发者文档;本插件未被 8/18 楼上 350 的报告覆盖,属独立首次审查)

    插件:Premium 与 富可敌国 会员(neo_premium)v2.5.0

    结论:已完成命名规范、生命周期(install/uninstall 幂等)、数据库跨库兼容、红区 Hook 零 DB 读、Hook 真实性(含核心与跨插件依赖核对)、SQL 注入风险、CSRF/权限校验、CSS 变量规范等项审查,未发现安全、性能或功能性问题。

    #50

发表回复

登录后回复