Tôi đang sử dụng solr với ruby trên đường ray. Mọi thứ đều hoạt động tốt, tôi chỉ cần biết liệu có bất kỳ mã nào hiện có để vệ sinh đầu vào của người dùng, như truy vấn bắt đầu bằng không? hoặc *solr khử trùng truy vấn
5
A
Trả lời
7
Tôi không biết mã nào thực hiện điều này, nhưng về mặt lý thuyết, có thể thực hiện bằng cách xem parsing code in Lucene và tìm kiếm throw new ParseException
(chỉ 16 kết quả phù hợp!).
Trong thực tế, tôi nghĩ bạn tốt hơn là chỉ bắt bất kỳ ngoại lệ nào trong mã của bạn và hiển thị thông báo "truy vấn không hợp lệ" hoặc nội dung tương tự.
EDIT: Dưới đây là một vài "vệ sinh":
3
Các Solr Security và Solr Query Syntax trang wiki có thể liên quan.
1
Nếu bạn đang sử dụng Solarium bằng PHP thì bạn có thể sử dụng phương thức Solarium_Escape::term()
.
/**
* Escape a term
*
* A term is a single word.
* All characters that have a special meaning in a Solr query are escaped.
*
* If you want to use the input as a phrase please use the {@link phrase()}
* method, because a phrase requires much less escaping.\
*
* @link http://lucene.apache.org/java/docs/queryparsersyntax.html#Escaping%20Special%20Characters
*
* @param string $input
* @return string
*/
static public function term($input)
{
$pattern = '/(\+|-|&&|\|\||!|\(|\)|\{|}|\[|]|\^|"|~|\*|\?|:|\\\)/';
return preg_replace($pattern, '\\\$1', $input);
}
Các vấn đề liên quan
- 1. $ khử trùng Tuỳ chỉnh Whitelist
- 2. cách codeigniter khử trùng đầu vào?
- 3. Solr lỗi truy vấn nhiều
- 4. Nhiều truy vấn trong Solr
- 5. Trình biên tập WMD khử trùng
- 6. Sử dụng caja để khử trùng Javascript?
- 7. Làm cách nào để khử trùng cin?
- 8. SqlCommand khử trùng các thông số như thế nào?
- 9. Truy vấn Solr với LIKE Khoản
- 10. Trình duyệt truy vấn mặt cho SOLR
- 11. Tôi có nên sử dụng PDO để khử trùng các truy vấn Sql của mình hoặc là "mysql_real_escape_string" đủ không?
- 12. Tôi có cần phải khử trùng đầu vào nếu sử dụng các truy vấn PHP/MySQL chuẩn bị không?
- 13. Sử dụng máy học để khử trùng dữ liệu
- 14. Trình khử trùng HTML đơn giản trong Javascript
- 15. ruby-pg khử trùng dữ liệu trước khi chèn
- 16. Các thư viện .NET để khử trùng đầu vào?
- 17. khử trùng/thoát ra khỏi drupal arg (x) cần thiết?
- 18. Tôi làm cách nào để dệt và khử trùng html?
- 19. Gỡ rối các truy vấn tìm kiếm Solr trên Sunspot
- 20. Làm cách nào để KHÔNG truy vấn trong Solr?
- 21. Solr truy vấn đại diện với khoảng trắng
- 22. Cập nhật chỉ mục Solr theo truy vấn
- 23. Solr: truy vấn cụm từ chính xác với một EdgeNGramFilterFactory
- 24. Cách truy vấn SOLR cho các trường trống?
- 25. Truy vấn Solr mà không chỉ định tên trường
- 26. Solr - làm nổi bật cụm từ truy vấn
- 27. Truy vấn bộ lọc Solr bao gồm NOT và OR
- 28. SOLR Tìm kiếm trường hợp truy vấn nhạy cảm
- 29. Solr truy vấn: dừng lời, OR và AND weirdness
- 30. Truy vấn phạm vi Solr cho id specefic như/solr/select? Q = x: [1,2,5,11,64589]