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

Re: [PATCH v5 2/2] submodule: pass on http.extraheader config settings

From
Jacob Keller <jacob.keller@gmail.com>
Date
Apr 28, 2016, 15:37 UTC
Message-ID
<CA+P7+xq-_D2Mszyjd11CyYLiKBBh9A2e1exaZQVmWz1qVKv7ug@mail.gmail.com>
In-Reply-To
<20160428134953.GB25364@sigill.intra.peff.net>
On Thu, Apr 28, 2016 at 6:49 AM, Jeff King <peff@peff.net> wrote:
Show 59 quoted lines
> On Thu, Apr 28, 2016 at 02:19:37PM +0200, Johannes Schindelin wrote:
>
>> > Should we consider just white-listing all of "http.*"?
>> >
>> > That would help other cases which have come up, like:
>> >
>> >   http://thread.gmane.org/gmane.comp.version-control.git/264840
>> >
>> > which wants to turn off http.sslverify. That would mean it turns off for
>> > every submodule, too, but if you want to be choosy about your http
>> > variables, you should be using the "http.$URL.sslverify" form, to only
>> > affect specific servers (whether they are in submodules or not).
>>
>> I considered that, and thought that it might be dangerous, what with me
>> not vetting carefully which http.* variables are safe to pass on to the
>> submodules' update and which are not.
>>
>> So I had a look now, and the most prominent potential problem is the
>> http.cookieFile setting, which could be reused all of a sudden if we
>> made my patch more general.
>>
>> But then, we are talking about the code that filters what gets passed via
>> the *command-line*. And to be quite honest, I am not sure that we should
>> actually filter out *any* of these settings.
>
> The intent of the whitelist (from my recollection of the discussion) is
> to filter out config that must be repo-specific. E.g., core.worktree or
> core.bare should definitely _not_ be passed to a submodule.
>
> I don't know if there are others. We started with a whitelist because it
> was the smallest and safest change away from the status quo. A blacklist
> would also work, with the risk that we might let through nonsense in
> some cases (but only if the user triggers us to do so).
>
>> The commit message that introduced this particular filtering has this
>> rationale to let only credential.* through:
>>
>>     GIT_CONFIG_PARAMETERS is special, and we actually do want to
>>     preserve these settings. However, we do not want to preserve all
>>     configuration as many things should be left specific to the parent
>>     project.
>>
>>     Add a git submodule--helper function, sanitize-config, which shall be
>>     used to sanitize GIT_CONFIG_PARAMETERS, removing all key/value pairs
>>     except a small subset that are known to be safe and necessary.
>>
>> Dunno. I tried to err on the side of caution... But this sounds maybe a
>> bit *too* cautious?
>
> So if we all agree that the sanitizing is really about preventing
> repo-specific variables from leaking, and not any kind of security
> boundary, I think we should generally be pretty liberal in whitelisting
> things.
>
> I can certainly come up with a pathological case where using it as a
> security boundary may have some practical use, but in general I think it
> is mostly getting in the way of what users are trying to do.
>
> -Peff

I think I prefer a blacklist approach, since it reduces the need for future changes, since most cases will either not put config on the environment or (based on feedback on the mailing list and bug reports) the user will believe it should be applied.

A black list which only removed configurations we know are harmful would be easier to maintain but risks new additions forgetting to do so. A whitelist means we only fix things as they come up but also means we aren't "breaking" anything that works today, where as a blacklist could break something that works today.

Thanks, Jake

Previous: Jeff KingNext: Jeff King
Message 31 of 119 in “http: Support sending custom HTTP headers”
  1. http: Support sending custom HTTP headersJohannes Schindelin, Apr 25, 2016
  2. Shawn PearceApr 25, 2016
  3. Jeff KingApr 25, 2016
  4. Johannes SchindelinApr 26, 2016
  5. Jeff KingApr 26, 2016
  6. Junio C HamanoApr 25, 2016
  7. Johannes SchindelinApr 26, 2016
  8. Junio C HamanoApr 26, 2016
  9. Jeff KingApr 26, 2016
  10. Johannes SchindelinApr 27, 2016
  11. Jeff KingApr 27, 2016
  12. Johannes SchindelinApr 27, 2016
  13. http: support sending custom HTTP headersJohannes Schindelin, Apr 26, 2016
  14. Junio C HamanoApr 26, 2016
  15. Jeff KingApr 26, 2016
  16. Junio C HamanoApr 26, 2016
  17. Jeff KingApr 26, 2016
  18. Johannes SchindelinApr 27, 2016
  19. Johannes SchindelinApr 27, 2016
  20. Junio C HamanoApr 26, 2016
  21. http: support sending custom HTTP headersJohannes Schindelin, Apr 27, 2016
  22. http: support sending custom HTTP headersJohannes Schindelin, Apr 27, 2016
  23. Jeff KingApr 27, 2016
  24. Junio C HamanoApr 27, 2016
  25. 0/2 Add support for sending additional HTTP headersJohannes Schindelin, Apr 28, 2016
  26. 1/2 http: support sending custom HTTP headersJohannes Schindelin, Apr 28, 2016
  27. 2/2 submodule: pass on http.extraheader config settingsJohannes Schindelin, Apr 28, 2016
  28. Jeff KingApr 28, 2016
  29. Johannes SchindelinApr 28, 2016
  30. Jeff KingApr 28, 2016
  31. Jacob KellerApr 28, 2016
  32. Jeff KingApr 28, 2016
  33. Stefan BellerApr 28, 2016
  34. Jeff KingApr 28, 2016
  35. Junio C HamanoApr 28, 2016
  36. Jeff KingApr 28, 2016
  37. Junio C HamanoApr 28, 2016
  38. Stefan BellerApr 28, 2016
  39. Junio C HamanoApr 28, 2016
  40. Junio C HamanoApr 28, 2016
  41. Stefan BellerApr 28, 2016
  42. Junio C HamanoApr 28, 2016
  43. Jeff KingApr 28, 2016
  44. Stefan BellerApr 28, 2016
  45. Junio C HamanoApr 28, 2016
  46. Jeff KingApr 29, 2016
  47. Jeff KingApr 28, 2016
  48. Stefan BellerApr 28, 2016
  49. Jeff KingApr 28, 2016
  50. Johannes SchindelinApr 29, 2016
  51. Jeff KingApr 29, 2016
  52. Jeff KingApr 28, 2016
  53. Junio C HamanoApr 28, 2016
  54. Johannes SchindelinApr 29, 2016
  55. Johannes SchindelinApr 29, 2016
  56. Jeff KingApr 29, 2016
  57. Johannes SchindelinApr 29, 2016
  58. 0/2 Add support for sending additional HTTP headersJohannes Schindelin, May 4, 2016
  59. 1/2 http: support sending custom HTTP headersJohannes Schindelin, May 4, 2016
  60. Lars SchneiderMay 5, 2016
  61. Junio C HamanoMay 5, 2016
  62. Jeff KingMay 5, 2016
  63. 2/2 submodule: pass on http.extraheader config settingsJohannes Schindelin, May 4, 2016
  64. Jeff KingMay 4, 2016
  65. Junio C HamanoMay 4, 2016
  66. Johannes SchindelinMay 4, 2016
  67. Junio C HamanoMay 4, 2016
  68. Jeff KingMay 4, 2016
  69. submodule: stop sanitizing config optionsJeff King, May 4, 2016
  70. Junio C HamanoMay 4, 2016
  71. Johannes SchindelinMay 4, 2016
  72. Stefan BellerMay 4, 2016
  73. Jeff KingMay 4, 2016
  74. Junio C HamanoMay 4, 2016
  75. Jeff KingMay 4, 2016
  76. Stefan BellerMay 4, 2016
  77. Jeff KingMay 5, 2016
  78. Junio C HamanoMay 5, 2016
  79. Jeff KingMay 5, 2016
  80. Junio C HamanoMay 5, 2016
  81. Stefan BellerMay 6, 2016
  82. Jeff KingMay 6, 2016
  83. Junio C HamanoMay 6, 2016
  84. 0/3 Add support for sending additional HTTP headers (part 2)Johannes Schindelin, May 9, 2016
  85. 1/3 tests: Adjust the configuration for Apache 2.2Johannes Schindelin, May 9, 2016
  86. Jeff KingMay 9, 2016
  87. Johannes SchindelinMay 9, 2016
  88. Jeff KingMay 9, 2016
  89. Johannes SchindelinMay 9, 2016
  90. Junio C HamanoMay 9, 2016
  91. Jeff KingMay 9, 2016
  92. Junio C HamanoMay 9, 2016
  93. Johannes SchindelinMay 10, 2016
  94. Junio C HamanoMay 10, 2016
  95. Junio C HamanoMay 9, 2016
  96. Lars SchneiderMay 10, 2016
  97. Junio C HamanoMay 10, 2016
  98. 2/3 t5551: make the test for extra HTTP headers more robustJohannes Schindelin, May 9, 2016
  99. Lars SchneiderMay 9, 2016
  100. Jeff KingMay 9, 2016
  101. Johannes SchindelinMay 9, 2016
  102. Jeff KingMay 9, 2016
  103. 3/3 submodule: pass on http.extraheader config settingsJohannes Schindelin, May 9, 2016
  104. 0/3 Add support for sending additional HTTP headers (part 2)Johannes Schindelin, May 10, 2016
  105. 1/3 tests: adjust the configuration for Apache 2.2Johannes Schindelin, May 10, 2016
  106. Junio C HamanoMay 10, 2016
  107. 2/3 t5551: make the test for extra HTTP headers more robustJohannes Schindelin, May 10, 2016
  108. Junio C HamanoMay 10, 2016
  109. t5551 hangs ?Torsten Bögershausen, May 11, 2016
  110. Jeff KingMay 11, 2016
  111. Torsten BögershausenMay 11, 2016
  112. Jeff KingMay 12, 2016
  113. Torsten BögershausenMay 12, 2016
  114. Jeff KingMay 12, 2016
  115. Jeff KingMay 12, 2016
  116. 3/3 submodule: ensure that -c http.extraheader is heededJohannes Schindelin, May 10, 2016
  117. Junio C HamanoMay 10, 2016
  118. Johannes SchindelinMay 11, 2016
  119. mail-patch-series.sh, was Re: [PATCH v7 0/3] Add support for sending additional HTTP headers (part 2)Johannes Schindelin, May 16, 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.