Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

security: user-controlled URL params injected directly into Redux store via JSON.parse

未关闭 适合新手
#2,319 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

@Talha12Shiekh 已经在做这个了。

开始于 2026年7月30日。

  • #2333 来自 @Talha12Shiekh —— 未关闭

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
68/100
Issue 类型
缺陷
描述清晰度
描述清楚
活跃度
冷清
技术栈
javascript, react
领域
frontend, security

调研方向

从 packages/web/src/components/basic/ReactiveBase.js 的第 140-162 行开始,检查 URL 参数在进入 selectedValues 之前是如何解析的。验证解析后的值是 string 原始值或包含 value 和 category 的对象,并拒绝其他形状。完成标准是:有效参数仍能填充 Redux state,而精心构造或格式错误的结构会被忽略。

由索引模型根据 Issue 内容生成。

描述

Problem

ReactiveBase.js parses URL search parameters directly with JSON.parse and injects the result into the Redux store as initial selectedValues:

Array.from(params.keys()).forEach((key) => {
    try {
        const parsedParams = JSON.parse(params.get(key));
        selectedValues[key] = { value: parsedParams.value || parsedParams, ... };
    } catch (e) { /* silent failure */ }
});

A crafted URL can inject arbitrary object structures into the store, potentially triggering unexpected behavior in downstream components that consume selectedValues.

Location

packages/web/src/components/basic/ReactiveBase.js, lines 140-162

Suggested Fix

Validate the shape of parsed values before injection. Expected shapes are string primitives or { value, category } objects. Reject anything that doesn't match.

Severity

High — URL injection into application state

主要语言
JavaScript
星标
4.9k
派生
479
平均合并
4 天 10 小时
30 天内合并 PR
4

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

appbaseio/reactivesearch 的其他 Issue

查看 appbaseio/reactivesearch 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。