PHP Conference Japan 2024

SolrUtils::queryPhrase

(PECL solr >= 0.9.2)

SolrUtils::queryPhrase從未逸出的 lucene 字串準備片語

說明

public static SolrUtils::queryPhrase(string $str): string

從未逸出的 lucene 字串準備片語。

參數

str

lucene 片語。

回傳值

回傳包含在雙引號中的片語。

新增筆記

使用者貢獻的筆記 2 則筆記

quackfish at gmail dot com
9 年前
如果您索引了敏感資訊,則在允許使用者使用原始查詢時需要格外小心。如果您的表單沒有 XSRF 保護,跨網域搜尋計時攻擊可以用於從索引 [1] 中提取資訊。

如果您允許原始查詢,使用者也可能透過輸入緩慢的查詢來對您的應用程式進行 DOS 攻擊。

[1] https://www.idontplaydarts.com/2015/09/cross-domain-timing-attacks-against-lucene/
daniel dot allen at commercialtrucktrader dot com
10 年前
經過一些測試,似乎此函式也會清理輸入(在 1.0 以上版本進行測試)。術語「片語」與完整的查詢(例如「FIELD:冒號後面的右半部分是片語」)不同。

因此,如果您想使用例如 + 的跳脫字元搜尋 SOME_FIELD:some value,則必須寫出程式碼

$query = 'SOME_FIELD:' . SolrUtils::queryPhrase('some value with an escape character like +');

這會正確地將其跳脫為

some value with an escape character like \+

僅供參考。
To Top