Names with an apostrophe break the XPath queries in RtLocks, RtCounters, and RtCounter
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 82/100
調査の方向性
issue に名前を埋め込む3つの XPath 式が示されている src/main/java/co/stateful/RtLocks.java、RtCounter.java、RtCounters.java から始めてください。これらのメソッドがクエリをどのように構築して実行するかを読み、その後、3か所すべてで安全な XPath リテラルの方法を一貫して使用してください。名前にどちらか一方、または両方の種類の引用符が含まれていても、選択される項目を変えずに、記載された操作が機能すれば完了です。
索引モデルが issue の本文から書いたものです。
説明
A lock or counter name that contains a single quote makes the XPath expression invalid, so the call fails instead of finding the item.
The name is pasted straight into a single-quoted XPath literal:
// src/main/java/co/stateful/RtLocks.java:53
.nodes(String.format("/page/locks/lock[name='%s']", name))
// src/main/java/co/stateful/RtCounter.java:93
"/page/counters/counter[name='%s']/links/link[@rel='%s']/@href"
// src/main/java/co/stateful/RtCounters.java (delete)
"/page/counters/counter[name='%s']/links/link[@rel='delete']/@href"
Take locks.exists("it's"): the expression becomes /page/locks/lock[name='it's'], which is malformed XPath, so exists throws instead of returning a boolean. The same happens in counter.set(...), counter.incrementAndGet(...), and counters.delete("it's"). A name like x' or '1'='1 changes the query and may select another item.
Fix: build the XPath literal safely. Either pass the name as an XPath variable, or write a small helper that wraps the value in double quotes when it has a single quote, and uses concat(...) when it has both kinds of quotes. Use it in all three places.
- 主要言語
- Java
- スター
- 10
- フォーク
- 3
- 平均マージ
- 4時間 33分
- マージ済み PR(30日)
- 7
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
sttc/java-sdk のほかの issue
-
MkCounter.name() returns the class name instead of the counter name, and MkCounters drops the name対応中かも @yegor256 が 6 日前に担当しました。 オープンbug
-
Dependency Dashboardオープンwontfix
難易度 1/5 1時間未満 初心者へのやさしさ 35/100
似ている issue
-
physical
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
antonyrag/ragleap-core#1339 ·
-
Bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
rezelyn/Wathe-Extended#116 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
langchain4j/langchain4j#7068 ·
メンテナーはふだん 1 日以内に返信
-
Mend: dependency security vulnerability untriaged
難易度 2/5 1〜3時間 初心者へのやさしさ 73/100
opensearch-project/k-NN#3693 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
OneBusAway/maglev#2026 ·
メンテナーはふだん 2 日以内に返信