libmicrohttpd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [libmicrohttpd] Escaped "&" in CGI parameter


From: Christian Grothoff
Subject: Re: [libmicrohttpd] Escaped "&" in CGI parameter
Date: Sat, 13 Feb 2021 11:16:02 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.12.0

Hi Josef,

I suspect your main mistake might be using a very old version of
libmicrohttpd ;-).  I tested it with the current one, and I get this:

$ cd src/examples
$ ./querystring_example 8080 &
$ wget -q -O - 'http://localhost:8080/?q=Cagney+%26+Lacey'
<html><head><title>libmicrohttpd demo</title></head><body>Query string
for &quot;q&quot; was &quot;Cagney & Lacey&quot;</body></html>

Happy hacking!

Christian

On 2/10/21 8:40 AM, Josef Möllers wrote:
> Hi,
> 
> I have a small-ish client-server setup:
> 
> * a plug-in for tvbrowser which schedules a recording by sending CGI
> parameters to a remote recorder and
> 
> * a scheduler program on the recorder which ... ahem ... schedules the
> requested recording.
> 
> The plug-in uses libcurl and (explicitly) encodes "&" characters in the
> show's title as "%26". This also happens when I just "wget" the URL
> handed over to libcurl.
> 
> The scheduler uses libmicrohttpd (0.9.62-1 on Debian Buster) to retrieve
> the CGI parameters and values and schedule the recording.
> 
> The problem is that when I call MHD_get_connection_values(connection,
> MHD_GET_ARGUMENT_KIND, ...), an embedded "%26" has been converted into
> "&" before the CGI parameter string is parsed and this confuses the parser.
> 
> Eg the request sent is
> 
> /add?date=9.2.2021&time=23:45&channel=Das+Erste&title=Cagney+%26+Lacey&duration=10
> 
> (strace shows this as the data recv'ed) so the value of the
> "title"-field *should* be "Cagney & Lacey", but when the string is
> parsed into parameters, the "%26" had already been translated back into
> an "&" and I get "Cagney " as the value of the "title" parameter
> followed by an extra parameter " Lacey" without a value.
> 
> What am I doing wrong?
> 
> Thanks for helping and ... stay safe!
> 
> Josef
> 
> 
> 

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]