Thanks Alessandro, I had overlooked the highlighting component. 

I will also add a reminder to exclude these fields from spellcheck fields, (or 
maintain different spellcheck fields for different roles).

@Scott - Once I started planning my code the penny finally dropped regarding 
your point about aliasing the fields - it removes the need for calculating 
which fields to request in the app itself. 

Regards,
D


> On 4 Nov 2015, at 14:53, Alessandro Benedetti <abenede...@apache.org> wrote:
> 
> Of course it depends of all the query parameter you use and you process in
> the response.
> The list you wrote should be ok if you use only those components.
> 
> For example if you use highlight, it's not ok and you need to take care of
> the highlighted fields as well.
> 
> Cheers
> 
> On 30 October 2015 at 14:51, Douglas McGilvray <d...@weemondo.com> wrote:
> 
>> 
>> Scott thanks for the reply. I like the idea of mapping all the fieldnames
>> internally, adding security through obscurity. My question therefore would
>> be what is the definitive list of query parameters that one must filter to
>> ensure a particular field is not exposed in the query response? Am I
>> missing in the following?
>> 
>> fl
>> facect.field
>> facet.pivot
>> json.facet
>> terms.fl
>> 
>> 
>> kr
>> Douglas
>> 
>> 
>>> On 30 Oct 2015, at 07:37, Scott Stults <
>> sstu...@opensourceconnections.com> wrote:
>>> 
>>> Douglas,
>>> 
>>> Managing a per-user-group whitelist of fields outside of Solr seems the
>>> best approach. When the query comes in you can then filter out any fields
>>> not contained in the whitelist before you send the request to Solr. The
>>> easy part will be to do that on URL parameters like fl. Depending on how
>>> your app generates the actual query string, you may want to also scan
>> that
>>> for fielded query clauses (eg "badfield:value") and localParams (eg
>>> "{!dismax qf=badfield}value").
>>> 
>>> Secondly, you can map internal Solr fields to aliases using this syntax
>> in
>>> the fl parameter: "display_name:real_solr_name". So when the request
>> comes
>>> in from your app, first you'll map from the requested field alias names
>> to
>>> internal Solr names (while enforcing the whitelist), and then in the fl
>>> parameter supply the aliases you want sent in the response.
>>> 
>>> 
>>> k/r,
>>> Scott
>>> 
>>> On Wed, Oct 28, 2015 at 6:58 PM, Douglas McGilvray <d...@weemondo.com>
>> wrote:
>>> 
>>>> Hi all,
>>>> 
>>>> First I’d like to say the nested facets and the json facet api in
>>>> particular have made my world much better, I thank everyone involved,
>> you
>>>> are all awesome.
>>>> 
>>>> In my implementation has much of the solr query building working on the
>>>> browser, solr is behind a php server which acts as “proxy” and doorman,
>>>> filtering at the document level according to user role and supplying
>> some
>>>> sensible maximums …
>>>> 
>>>> However we now wish to filter just one or two potentially sensitive
>> fields
>>>> in one document type according to user role (as determined in the php
>>>> proxy). Duplicating documents (or cores) seems like overkill for just
>> two
>>>> fields in one document type .. I wondered if it would be feasible (in
>> the
>>>> interests of preventing malicious activity) to filter the query itself
>>>> whether it be parameters (fl, facet.fields, terms, etc) … or even deny
>> any
>>>> request in which fieldname occurs …
>>>> 
>>>> Is there someway someone might obscure a fieldname in a request?
>>>> 
>>>> Kind Regards & thanks in davacne,
>>>> Douglas
>>> 
>>> 
>>> 
>>> 
>>> --
>>> Scott Stults | Founder & Solutions Architect | OpenSource Connections,
>> LLC
>>> | 434.409.2780
>>> http://www.opensourceconnections.com
>> 
>> 
> 
> 
> -- 
> --------------------------
> 
> Benedetti Alessandro
> Visiting card : http://about.me/alessandro_benedetti
> 
> "Tyger, tyger burning bright
> In the forests of the night,
> What immortal hand or eye
> Could frame thy fearful symmetry?"
> 
> William Blake - Songs of Experience -1794 England

Reply via email to