リクエスト詳細
🐛 バグ報告
対応完了
対象アプリ: 合体ドロップ
NGワード「しね」のカタカナ表記「シネ」が抜けており不適切名がすり抜ける
1. 不具合の内容:
lib.php の vd_ng_words() 関数では、他の日本語NGワードはひらがな・カタカナのペアで両方登録されている(例: 'ばか'/'バカ', 'あほ'/'アホ', 'くそ'/'クソ')にもかかわらず、「死ね」については '死ね'(漢字)と'しね'(ひらがな)のみが登録されており、カタカナ表記の 'シネ' が抜けている。
2. 根拠・発生しそうな条件:
lib.php の vd_ng_words() 抜粋:
```
'死ね', 'しね', '殺す', 'ばか', 'バカ', 'あほ', 'アホ', 'くそ', 'クソ',
```
上記の通り「ばか/バカ」「あほ/アホ」「くそ/クソ」は必ずひらがな・カタカナが対で登録されているのに対し、「しね」はカタカナ「シネ」が存在しない。さらに vd_ng_word_exceptions() でも 'しね' => ['しねま'] のみが定義されており、カタカナ側の例外(例: 'シネマ')も用意されていない。この結果、vd_contains_ng_word() のループでは 'シネ' という語自体がリストに存在しないため、プレイヤー名に「シネ」「シネシネ」などを含めても NG語チェックを通過してしまう(クライアント側の簡易チェック・サーバー側の submit_score.php 双方とも同一関数/同一リストを参照しているため両方で漏れる)。「死ね」は侮辱・誹謗中傷に使われる代表的な語句であり、カタカナ表記でのすり抜けは他の対応語との一貫性を欠く明確な抜け漏れである。
3. 期待動作:
ひらがな「しね」と同様に、カタカナ「シネ」を含むプレイヤー名も NG語として拒否されるべき。ただし「シネマ」のような正当な単語(映画館の意味)は誤ブロックしないよう、既存の 'しねま' 例外と同様にカタカナ版の例外も用意する。
4. 修正方針:
- lib.php の vd_ng_words() 配列に 'シネ' を追加する。
- vd_ng_word_exceptions() に 'シネ' => ['シネマ'] を追加し、'シネマ' のような正当な名前を誤ブロックしないようにする。
- 既存の vd_contains_ng_word() のロジック(ひらがな/カタカナ変換・例外除去)はそのまま利用可能なため、配列追加のみで対応可能。
- 修正後、'シネ'単独、'シネシネ'、'死ねしね' 等が拒否され、'シネマ'は許可されることを確認するテストケースを追加する。
lib.php の vd_ng_words() 関数では、他の日本語NGワードはひらがな・カタカナのペアで両方登録されている(例: 'ばか'/'バカ', 'あほ'/'アホ', 'くそ'/'クソ')にもかかわらず、「死ね」については '死ね'(漢字)と'しね'(ひらがな)のみが登録されており、カタカナ表記の 'シネ' が抜けている。
2. 根拠・発生しそうな条件:
lib.php の vd_ng_words() 抜粋:
```
'死ね', 'しね', '殺す', 'ばか', 'バカ', 'あほ', 'アホ', 'くそ', 'クソ',
```
上記の通り「ばか/バカ」「あほ/アホ」「くそ/クソ」は必ずひらがな・カタカナが対で登録されているのに対し、「しね」はカタカナ「シネ」が存在しない。さらに vd_ng_word_exceptions() でも 'しね' => ['しねま'] のみが定義されており、カタカナ側の例外(例: 'シネマ')も用意されていない。この結果、vd_contains_ng_word() のループでは 'シネ' という語自体がリストに存在しないため、プレイヤー名に「シネ」「シネシネ」などを含めても NG語チェックを通過してしまう(クライアント側の簡易チェック・サーバー側の submit_score.php 双方とも同一関数/同一リストを参照しているため両方で漏れる)。「死ね」は侮辱・誹謗中傷に使われる代表的な語句であり、カタカナ表記でのすり抜けは他の対応語との一貫性を欠く明確な抜け漏れである。
3. 期待動作:
ひらがな「しね」と同様に、カタカナ「シネ」を含むプレイヤー名も NG語として拒否されるべき。ただし「シネマ」のような正当な単語(映画館の意味)は誤ブロックしないよう、既存の 'しねま' 例外と同様にカタカナ版の例外も用意する。
4. 修正方針:
- lib.php の vd_ng_words() 配列に 'シネ' を追加する。
- vd_ng_word_exceptions() に 'シネ' => ['シネマ'] を追加し、'シネマ' のような正当な名前を誤ブロックしないようにする。
- 既存の vd_contains_ng_word() のロジック(ひらがな/カタカナ変換・例外除去)はそのまま利用可能なため、配列追加のみで対応可能。
- 修正後、'シネ'単独、'シネシネ'、'死ねしね' 等が拒否され、'シネマ'は許可されることを確認するテストケースを追加する。
💬 返信 (3)
🛠 開発を開始しました (バグ修正 (vegetable-drop))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
ご要望いただいた「合体ドロップ」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=vegetable-drop
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/vegetable-drop/
ご利用ありがとうございます!
Echo
Iris