On 12/14/2013 06:28 AM, Amos Jeffries wrote:
> On 14/12/2013 6:59 a.m., Marcus Kool wrote:
>> all,
>>
>> as discussed in a previous thread, the URL rewriter protocol of Squid
>> 3.4 is different than with previous versions of Squid.
>> Despite Amos' belief, I found out yesterday that there is no backward
>> compatibility since a typical redirection URL is
>>   
>> www.example.com/foo.cgi?category=adult&url=http://www.example.com/foo/bar
>> and Squid 3.4 has a parser that splits tokens at '=' and then complains
>> that it does not understand the answer of the URL redirector.
>>
> 
> Ouch. Thank you for finding this one.
> 
> The fix appears to be limiting the character set we accept for key names
> such that it does not match any valid URL. I have now applied a patch to
> trunk as rev.13181 which limits characters in kv-pair key name to
> alphanumeric, hyphen and underscore.

Based on icap_service experience that had a similar chain of
developments/bugs/fixes, the best fix may be to require uri=... or a
similar key=value pair for communicating URLs.

There is an issue of backward compatibility which might be addressed by
prohibiting bare URLs when newer key=value support is enabled (and
honoring them otherwise). The presence of a uri=... key=value pair can
be used to distinguish the two cases more-or-less reliably.

In other words:

* Want to use the newer key=value format? Use uri=...
* Otherwise, you may continue to use bare URIs.


Please do _not_ interpret the above as a vote against restricting key
name characters. However, we should probably restrict them the same way
for key names _everywhere_ (in all key=value pairs) and not just in
helper responses.


Cheers,

Alex.

Reply via email to