threads / patch / 32755

patchremove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Subject: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

## tl;dr

10 messages between Jan 28, 2013 and Jan 28, 2013. Diffs are folded; open one to read it.

replies: 9people: 3as markdown or json

Andrej Andb· Jan 28, 2013, 19:14 UTC · lore
---
 gitweb/gitweb.perl | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
Show changes to gitweb/gitweb.perl +2 −2
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index c6bafe6..1309196 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2068,7 +2068,7 @@ sub picon_url {
 	if (!$avatar_cache{$email}) {
 		my ($user, $domain) = split('@', $email);
 		$avatar_cache{$email} =
-			"http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
+			"//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
 			"$domain/$user/" .
 			"users+domains+unknown/up/single";
 	}
@@ -2083,7 +2083,7 @@ sub gravatar_url {
 	my $email = lc shift;
 	my $size = shift;
 	$avatar_cache{$email} ||=
-		"http://www.gravatar.com/avatar/" .
+		"//www.gravatar.com/avatar/" .
 			Digest::MD5::md5_hex($email) . "?s=";
 	return $avatar_cache{$email} . $size;
 }
-- 
1.8.1.1
Jonathan Nieder· Jan 28, 2013, 20:58 UTC · re: Andrej Andb · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

(cc-ing some area experts) Hi Andrej,

Andrej Andb wrote:
> [Subject: remove protocol from gravatar and picon links for clear if
> Gitweb is being called through a secure server]

Sounds good to me. May we have your signoff? (See Documentation/SubmittingPatches for what this means.)

Thanks, Jonathan (patch left unsnipped for reference)

Show 26 quoted lines
> ---
>  gitweb/gitweb.perl | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index c6bafe6..1309196 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -2068,7 +2068,7 @@ sub picon_url {
>  	if (!$avatar_cache{$email}) {
>  		my ($user, $domain) = split('@', $email);
>  		$avatar_cache{$email} =
> -			"http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
> +			"//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>  			"$domain/$user/" .
>  			"users+domains+unknown/up/single";
>  	}
> @@ -2083,7 +2083,7 @@ sub gravatar_url {
>  	my $email = lc shift;
>  	my $size = shift;
>  	$avatar_cache{$email} ||=
> -		"http://www.gravatar.com/avatar/" .
> +		"//www.gravatar.com/avatar/" .
>  			Digest::MD5::md5_hex($email) . "?s=";
>  	return $avatar_cache{$email} . $size;
>  }
Junio C Hamano· Jan 28, 2013, 21:54 UTC · re: Jonathan Nieder · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Jonathan Nieder <jrnieder@gmail.com> writes:
Show 29 quoted lines
> (cc-ing some area experts)
> Hi Andrej,
>
> Andrej Andb wrote:
>
>> [Subject: remove protocol from gravatar and picon links for clear if
>> Gitweb is being called through a secure server]
>
> Sounds good to me.  May we have your signoff?  (See
> Documentation/SubmittingPatches for what this means.)
>
> Thanks,
> Jonathan
> (patch left unsnipped for reference)
>
>> ---
>>  gitweb/gitweb.perl | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>> 
>> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
>> index c6bafe6..1309196 100755
>> --- a/gitweb/gitweb.perl
>> +++ b/gitweb/gitweb.perl
>> @@ -2068,7 +2068,7 @@ sub picon_url {
>>  	if (!$avatar_cache{$email}) {
>>  		my ($user, $domain) = split('@', $email);
>>  		$avatar_cache{$email} =
>> -			"http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>> +			"//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .

Hrmph. Is that even a valid URL to refer to that external site from a https://my.site/some/where/ base URL? I wouldn't be surprised if browsers allowed it, but I do not recall seeing such a use in RFCs.

Intuitively it feels strange that the above lets the site that gave you the base URL dictate over what scheme sites unrelated to it has to serve their resources.

Junio C Hamano· Jan 28, 2013, 21:58 UTC · re: Junio C Hamano · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Junio C Hamano <gitster@pobox.com> writes:
Show 6 quoted lines
>>> -			"http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>>> +			"//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>
> Hrmph.  Is that even a valid URL to refer to that external site from
> a https://my.site/some/where/ base URL?  I wouldn't be surprised if
> browsers allowed it, but I do not recall seeing such a use in RFCs.
ah, nevermind.  That's net_path in 1808.
Jonathan Nieder· Jan 28, 2013, 22:10 UTC · re: Junio C Hamano · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Junio C Hamano wrote:
>> Andrej Andb wrote:
Show 8 quoted lines
>>> --- a/gitweb/gitweb.perl
>>> +++ b/gitweb/gitweb.perl
>>> @@ -2068,7 +2068,7 @@ sub picon_url {
>>>  	if (!$avatar_cache{$email}) {
>>>  		my ($user, $domain) = split('@', $email);
>>>  		$avatar_cache{$email} =
>>> -			"http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>>> +			"//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
[...]
> Intuitively it feels strange that the above lets the site that gave
> you the base URL dictate over what scheme sites unrelated to it has
> to serve their resources.

The main effect is to slightly improve privacy. A man in the middle can still see the size of avatars and when you fetched them, but at least this way when you are using HTTPS they do not see the names of authors of commits you are looking at.

It also avoids a mixed content warning.
On the other hand, it hurts caching by proxies.
Jonathan
Junio C Hamano· Jan 28, 2013, 22:29 UTC · re: Jonathan Nieder · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Jonathan Nieder <jrnieder@gmail.com> writes:
Show 24 quoted lines
> Junio C Hamano wrote:
>>> Andrej Andb wrote:
>
>>>> --- a/gitweb/gitweb.perl
>>>> +++ b/gitweb/gitweb.perl
>>>> @@ -2068,7 +2068,7 @@ sub picon_url {
>>>>  	if (!$avatar_cache{$email}) {
>>>>  		my ($user, $domain) = split('@', $email);
>>>>  		$avatar_cache{$email} =
>>>> -			"http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>>>> +			"//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
> [...]
>> Intuitively it feels strange that the above lets the site that gave
>> you the base URL dictate over what scheme sites unrelated to it has
>> to serve their resources.
>
> The main effect is to slightly improve privacy.  A man in the middle
> can still see the size of avatars and when you fetched them, but at
> least this way when you are using HTTPS they do not see the names of
> authors of commits you are looking at.
>
> It also avoids a mixed content warning.
>
> On the other hand, it hurts caching by proxies.

I am sure mixed content warning was the primary motivation of the patch. Do we know these external sites actually server what we want over https://?

Андрей Баранов· Jan 28, 2013, 22:33 UTC · re: Junio C Hamano · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Or maybe option like: /etc/gitweb.conf: $feature{'ssl'}{'default'} = ['allways']; ['auto']; ['none'];

but it's hard for me :) i don't know perl
2013/1/29 Junio C Hamano <gitster@pobox.com>:
Show 31 quoted lines
> Jonathan Nieder <jrnieder@gmail.com> writes:
>
>> Junio C Hamano wrote:
>>>> Andrej Andb wrote:
>>
>>>>> --- a/gitweb/gitweb.perl
>>>>> +++ b/gitweb/gitweb.perl
>>>>> @@ -2068,7 +2068,7 @@ sub picon_url {
>>>>>    if (!$avatar_cache{$email}) {
>>>>>            my ($user, $domain) = split('@', $email);
>>>>>            $avatar_cache{$email} =
>>>>> -                  "http://www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>>>>> +                  "//www.cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi/" .
>> [...]
>>> Intuitively it feels strange that the above lets the site that gave
>>> you the base URL dictate over what scheme sites unrelated to it has
>>> to serve their resources.
>>
>> The main effect is to slightly improve privacy.  A man in the middle
>> can still see the size of avatars and when you fetched them, but at
>> least this way when you are using HTTPS they do not see the names of
>> authors of commits you are looking at.
>>
>> It also avoids a mixed content warning.
>>
>> On the other hand, it hurts caching by proxies.
>
> I am sure mixed content warning was the primary motivation of the
> patch.  Do we know these external sites actually server what we want
> over https://?
>
Junio C Hamano· Jan 28, 2013, 23:08 UTC · re: Андрей Баранов · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Андрей Баранов  <admin@andrej-andb.ru> writes:
Show 5 quoted lines
> Or maybe option like:
> /etc/gitweb.conf:
> $feature{'ssl'}{'default'} = ['allways']; ['auto']; ['none'];
>
> but it's hard for me :) i don't know perl

The effect is the same and your original patch is shorter and cleaner to see what is going on; as far as the patch text is concerned, the original one is just fine.

Except that we wanted a bit more stuff before "---" line. How about something like this?

        Subject: [PATCH] gitweb: refer to picon/gravatar images over the same scheme
        The images from picon and gravatar are always used over
        http://, and browsers give mixed contents warning when
        gitweb is served over https://.
        Just drop the scheme: part from the URL, so that these
        external sites are accessed over https:// in such a case.
        Signed-off-by: Your Name <your@addre.ss>
        ---
         gitweb/gitweb.perl | 4 ++--
         1 file changed, 2 insertions(+), 2 deletions(-)
        diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
	...
Андрей Баранов· Jan 28, 2013, 23:43 UTC · re: Junio C Hamano · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

re sended. Very big thanks for example :D
2013/1/29 Junio C Hamano <gitster@pobox.com>:
Show 32 quoted lines
> Андрей Баранов  <admin@andrej-andb.ru> writes:
>
>> Or maybe option like:
>> /etc/gitweb.conf:
>> $feature{'ssl'}{'default'} = ['allways']; ['auto']; ['none'];
>>
>> but it's hard for me :) i don't know perl
>
> The effect is the same and your original patch is shorter and
> cleaner to see what is going on; as far as the patch text is
> concerned, the original one is just fine.
>
> Except that we wanted a bit more stuff before "---" line.  How about
> something like this?
>
>         Subject: [PATCH] gitweb: refer to picon/gravatar images over the same scheme
>
>         The images from picon and gravatar are always used over
>         http://, and browsers give mixed contents warning when
>         gitweb is served over https://.
>
>         Just drop the scheme: part from the URL, so that these
>         external sites are accessed over https:// in such a case.
>
>         Signed-off-by: Your Name <your@addre.ss>
>         ---
>          gitweb/gitweb.perl | 4 ++--
>          1 file changed, 2 insertions(+), 2 deletions(-)
>
>         diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
>         ...
>
Jonathan Nieder· Jan 28, 2013, 22:39 UTC · re: Junio C Hamano · lore

Re: [PATCH] remove protocol from gravatar and picon links for clear if Gitweb is being called through a secure server

Junio C Hamano wrote:
> I am sure mixed content warning was the primary motivation of the
> patch.

Sure, but that's not enough motivation for me to like it. ;-) The privacy aspect is enough to motivate it for me.

>         Do we know these external sites actually server what we want
> over https://?

Yep. cs.indiana.edu/cgi-pub/kinzler/piconsearch.cgi and www.gravatar.com/avatar both support https and return the expected responses for queries over https.

← back to recent threads