git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 2/6] connect: uniformize and group CONNECT_DIAG_URL handling code

From
Junio C Hamano <gitster@pobox.com>
Date
May 2, 2016, 23:14 UTC
Message-ID
<xmqq37q0qcge.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<xmqqfuu0qfo4.fsf@gitster.mtv.corp.google.com>
Junio C Hamano <gitster@pobox.com> writes:
Show 13 quoted lines
> Torsten Bögershausen <tboegi@web.de> writes:
>
>> git://host:[port]/path/to/repo
>> Knowing that, the "@" will be feed into the name resolver,
>> and that's OK.
>
> Is it OK?  It is plausible that our client side may even want to
> accept git://user:pass@host:port/local/part, and as an anonymous
> service, allow it to go to git://host:port/local/part without
> sending user:pass part over the wire.  Or with the same knowledge
> that git:// is an anonymous service, it is also a plausible policy
> to error such a request out.  To implement either needs a robust
> parsing of the URL, doesn't it?
To put it differently, there is a vast difference between
 (1) knowing that xx@git.kernel.org is asking to access
     git.kernel.org as user 'xx' and failing because of a policy
     that says "we do not send auth material over the wire when we
     know we are doing anonymous access"; and
 (2) not caring the distinction between xx@git.kernel.org and
     git.kernel.org, and implicitly relying on the DNS to forbid '@'
     in the hostname and to return a look-up failure when the whole
     string of the former is taken as a hostname in order to fail
     that request.

If we want to fail the request, we should be in control of the policy to fail. Even in an unlikely (and impossible) world where suddenly resolver starts allowing "xx@git.kernel.org" as a host, we do not want to be making a connection to a bogus host that is not what the end user requested, i.e. git.kernel.org.

Otherwise we cannot change the policy to allow it in the future if it turns out to be necessary.

Previous: Junio C HamanoNext: Mike Hommey
Message 15 of 46 in “connect: various cleanups”
  1. 0/6 connect: various cleanupsMike Hommey, May 1, 2016
  2. 1/6 connect: remove get_port()Mike Hommey, May 1, 2016
  3. Torsten BögershausenMay 1, 2016
  4. Mike HommeyMay 1, 2016
  5. Jeff KingMay 3, 2016
  6. Mike HommeyMay 3, 2016
  7. 2/6 connect: uniformize and group CONNECT_DIAG_URL handling codeMike Hommey, May 1, 2016
  8. Torsten BögershausenMay 1, 2016
  9. Mike HommeyMay 1, 2016
  10. Torsten BögershausenMay 2, 2016
  11. Mike HommeyMay 2, 2016
  12. Torsten BögershausenMay 2, 2016
  13. Mike HommeyMay 2, 2016
  14. Junio C HamanoMay 2, 2016
  15. Junio C HamanoMay 2, 2016
  16. 3/6 connect: only match the host with core.gitProxyMike Hommey, May 1, 2016
  17. 4/6 connect: pass separate host and port to git_tcp_connect and git_proxy_connectMike Hommey, May 1, 2016
  18. 5/6 connect: don't xstrdup target_hostMike Hommey, May 1, 2016
  19. 6/6 connect: move ssh command line preparation to a separate functionMike Hommey, May 1, 2016
  20. 00/11 connect: various cleanupsMike Hommey, May 3, 2016
  21. 01/11 add fetch-pack --diag-url tests for some corner casesMike Hommey, May 3, 2016
  22. Torsten BögershausenMay 3, 2016
  23. Junio C HamanoMay 3, 2016
  24. Torsten BögershausenMay 3, 2016
  25. Mike HommeyMay 3, 2016
  26. Mike HommeyMay 5, 2016
  27. Torsten BögershausenMay 6, 2016
  28. Junio C HamanoMay 6, 2016
  29. 02/11 connect: call get_host_and_port() earlierMike Hommey, May 3, 2016
  30. 03/11 connect: only match the host with core.gitProxyMike Hommey, May 3, 2016
  31. 04/11 connect: fill the host header in the git protocol with the host and port variablesMike Hommey, May 3, 2016
  32. 05/11 connect: make parse_connect_url() return separated host and portMike Hommey, May 3, 2016
  33. 06/11 connect: group CONNECT_DIAG_URL handling codeMike Hommey, May 3, 2016
  34. 07/11 connect: make parse_connect_url() return the user part of the url as a separate valueMike Hommey, May 3, 2016
  35. 08/11 connect: change the --diag-url output to separate user and hostMike Hommey, May 3, 2016
  36. Torsten BögershausenMay 3, 2016
  37. Eric SunshineMay 3, 2016
  38. Mike HommeyMay 3, 2016
  39. 09/11 connect: use "-l user" instead of "user@" on ssh command lineMike Hommey, May 3, 2016
  40. Torsten BögershausenMay 3, 2016
  41. Junio C HamanoMay 3, 2016
  42. Eric SunshineMay 3, 2016
  43. Mike HommeyMay 3, 2016
  44. 10/11 connect: actively reject git:// urls with a user partMike Hommey, May 3, 2016
  45. 11/11 connect: move ssh command line preparation to a separate functionMike Hommey, May 3, 2016
  46. 11/11 connect: move ssh command line preparation to a separate functionMike Hommey, May 3, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.