<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <dfn><code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http_proxy</anchor></code></dfn> は、 <code class="URI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http:</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
の処理に使われるべき<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">串</anchor>を指定する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>です。</p><section><h1>変数名</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> 他の多くの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>がすべて<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>で綴られるのに対し、
<code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">http_proxy</anchor></code> が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>なのは、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor> <code class="CGI" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP_PROXY</anchor></code> との混同を避けるためです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP</anchor> に <code class="HTTP" xml:lang="en">Proxy:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>は (現時点では) 存在しないので通常の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">要求</anchor>の処理ではそのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>が設定されることはありませんが、
悪意ある<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">クライアント</anchor>が <code class="HTTP" xml:lang="en">Proxy:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>を指定することで任意の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">串</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト</anchor>を指定できてしまうと<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">セキュリティー</anchor>上の問題となります。
(大文字の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>が設定された状態で大文字の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>を参照する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>の類を呼び出したり、
大文字の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>を参照する外部の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>を起動したりすると、
その動作が影響を受けることになります。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> 中には現在でもこのような状況を想定せずに <code xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP_PROXY</anchor></code>
を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>や、大文字と小文字の両方を使う<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>が存在しているようです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP鯖</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション鯖</anchor>、あるいは <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>の実装は、
そのような<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>や<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>を呼び出すことが無いように注意しなければなりません。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プラットフォーム</anchor>によっては、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>名の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>を区別しません。
そのため<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">大文字</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">小文字</anchor>で同じ値が得られる場合に無視する実装もあります。
更には、そのような環境での利用も想定した <dfn><code>CGI_HTTP_PROXY</code></dfn>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>に対応した実装もあります (が普及はしていないようです)。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor> を使うことが少なくなった現在でも、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTP鯖</anchor>の内部的な利用や
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor> とある程度の互換性を持った<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Webアプリケーション</anchor>動作環境等が <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI</anchor>
と同等の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>を設定することがあります。</comment-p></section><section><h1>値</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 値が設定される場合、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト</anchor> (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト名</anchor>と <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">:</anchor></code> と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ポート</anchor>を連結した文字列)
となることが期待されているようです。</p></section><section><h1>URL scheme</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">curl</anchor> は先頭が <code>http://</code> や <code>https://</code> でなければ、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL scheme</anchor> の省略とみなすようです。それ以外だと <code>:</code> が含まれていても
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">userinfo</anchor> の一部とみなしたりします。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">curl</anchor> は <code>http_proxy</code> で <code>https://</code> を指定しても
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素のHTTP</anchor>で接続するようです。 <time>2016-06-03T00:57:45.100Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">wget</anchor> は <code>:</code> 以外 + <code>://</code> で始まると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
とみなし、 <code>:</code> 以外 + <code>:</code> + <code>//</code> 以外で始まると <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Unix</anchor>
風 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">FTP</anchor> の指定 (<code>:</code> の前までがホスト名) とみなすようです。
<code>http:hoge</code> は <code>ftp://hoge/</code> になります。
<time>2016-06-03T01:01:49.300Z</time></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 古い <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">LWP</anchor> は <code xml:lang="en">localhost:12345</code> のように <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">scheme</anchor> が明示されていないと
<code class="URI" xml:lang="en">localhost:</code> を <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL scheme</anchor> とみなしてしまいます。 <code class="URI" xml:lang="en">http://localhost:12345</code>
のようにすれば回避できます。</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <cite>環境変数 HTTP_PROXY の値には &quot;http://&quot; を含むのか含まないのか - Haskell はスケるよ</cite>
(<time>2012-11-02 04:42:37 +09:00</time> 版)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://d.hatena.ne.jp/takatoh/20070522/http_proxy">http://d.hatena.ne.jp/takatoh/20070522/http_proxy</anchor-external></li></ul></refs></section><section><h1>userinfo</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL scheme</anchor> が省略された場合も含め、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">userinfo</anchor>
で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロキシ認証</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者名</anchor>と<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">合言葉</anchor>を指定できます。</p></section><section><h1>ポート</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">wget</anchor> は <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">80</n>、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">curl</anchor> は <n xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">1080</n> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">既定のポート番号</anchor>とするようです。</p></section><section><h1><code>no_proxy</code></h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">wget</anchor> も <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">curl</anchor> も、 <code>no_proxy</code> での指定は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor>
の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト</f>との比較になります。 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">URL</anchor> の<f xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ホスト</f>を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名前解決</anchor>したら
<code>no_proxy</code> に指定された<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">IPアドレス</anchor>に一致するとしても、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロキシ</anchor>を使わない理由にはしません。</p></section><section><h1><code class="HTTP" xml:lang="en">Proxy:</code> ヘッダー</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <dfn><code class="HTTP" xml:lang="en">Proxy:</code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー<title xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">HTTPヘッダー</title></anchor>は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGIメタ変数</anchor> <code class="CGI" xml:lang="en">HTTP_PROXY</code> に対応する<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPヘッダー</anchor>です。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の正当な用法は存在しないとみられます。
<code class="CGI" xml:lang="en">HTTP_PROXY</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">脆弱性</anchor>を突く目的で用いられることがあります。</p></section><section><h1>テストデータ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="55" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[55]</anchor-end> 構文解析のテストデータ:</p><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="56" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[56]</anchor-end> <cite xml:lang="en">tests-web/url/proxyenv at master · wakaba/tests-web</cite> (<time>2018-08-21 12:20:22 +09:00</time>) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/wakaba/tests-web/tree/master/url/proxyenv">https://github.com/wakaba/tests-web/tree/master/url/proxyenv</anchor-external></li></ul></refs></section><section><h1>セキュリティー問題</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[64]</anchor-end> <cite xml:lang="en">CVE-2016-5385 - Red Hat Customer Portal</cite>, <time>2025-07-08T06:59:08.000Z</time> <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://access.redhat.com/security/cve/cve-2016-5385">https://access.redhat.com/security/cve/cve-2016-5385</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="65" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[65]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;64</anchor-internal> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">平成1桁</anchor>時代に問題になったときは <code>HTTP_PROXY</code>
を使わないという対処がなされていたが、
<time>平成28(2016)年<attrvalue xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:">2016</attrvalue></time>には <code>HTTP_PROXY</code> を設定することが脆弱性とされている。
これも時代の変化か。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="66" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[66]</anchor-end> <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="64" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;64</anchor-internal></p><blockquote><p>Apparently, PHP's getenv() is case insensitive under mod_php (apache2handler), but sensitive under CGI (cgi-fcgi).  There does not seem to be a difference between real process environment and SAPI environment, so getenv('path') and getenv('http_proxy') return the same result as getenv('PATH') and getenv('HTTP_PROXY').</p></blockquote><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="67" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[67]</anchor-end> 
このような現実がある以上、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor> <code>http_proxy</code> による<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プロキシ</anchor>指定もみんなやめるのが本当はいいのだろうけど、
互換性への影響が大きすぎる。かわりの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>の名前の提案もないのだしこれから普及させるのは困難。
すると <code>Proxy:</code> という <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPヘッダー</anchor>の正当な利用は存在していないのだから、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor> <code>HTTP_PROXY</code> は設定しないというのは妥当な判断だろう。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="68" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[68]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CGI/1.1</anchor> 仕様は特定の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">HTTPヘッダー</anchor>は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor> <code>HTTP_<var>*</var></code>
を設定しないと定めているのだから、
それを拡大して 
<code>Proxy:</code> も除外するというのは設計の一貫性の観点でも悪くない選択。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="69" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[69]</anchor-end> それはそれとして、外部プログラムはともかく<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">プログラム</anchor>内部から呼び出す汎用<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ライブラリー</anchor>が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>を勝手に参照するのは悪い習慣で、
それも改めるべき。呼び出し側<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">アプリケーション</anchor>の開発者が知らないところで勝手に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">環境変数</anchor>を参照するのは脆弱性の温床。</comment-p></section><section><h1>実装</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <cite xml:lang="en">Proxies - GNU Wget 1.13.4 Manual</cite>
( (<time>2012-11-02 04:43:40 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.gnu.org/software/wget/manual/html_node/Proxies.html">http://www.gnu.org/software/wget/manual/html_node/Proxies.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <cite>cURL - How To Use</cite>
( (<time>2012-08-28 08:45:05 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://curl.haxx.se/docs/manpage.html">http://curl.haxx.se/docs/manpage.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <cite>Help on Environment variables</cite>
( (<time>2004-05-23 22:59:56 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lynx.isc.org/lynx2.8.6/lynx2-8-6/lynx_help/keystrokes/environments.html">http://lynx.isc.org/lynx2.8.6/lynx2-8-6/lynx_help/keystrokes/environments.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> <cite>66057 – Proxy: $http_proxy should influence proxy settings</cite>
( (<time>2012-11-02 04:46:17 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=66057">https://bugzilla.mozilla.org/show_bug.cgi?id=66057</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end> <cite>LWP::UserAgent - search.cpan.org</cite>
( (<time>2012-11-02 04:47:01 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm#Proxy_attributes">http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm#Proxy_attributes</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <cite>Libwww Proxies and Gateways Setup</cite>
( (<time>1998-08-06 01:47:09 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.w3.org/Library/User/Using/Proxy.html">http://www.w3.org/Library/User/Using/Proxy.html</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <cite xml:lang="en">CLI Usage | Heroku Dev Center</cite>
( (<time>2014-10-10 04:30:21 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://devcenter.heroku.com/articles/using-the-cli">https://devcenter.heroku.com/articles/using-the-cli</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end> <cite>Sauce Connect · Sauce Labs Docs</cite>
( (<time>2014-10-21 18:46:44 +09:00</time> 版))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.saucelabs.com/reference/sauce-connect/">https://docs.saucelabs.com/reference/sauce-connect/</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> <cite xml:lang="en">ssllabs/ssllabs-scan: A command-line reference-implementation client for SSL Labs APIs, designed for automated and/or bulk testing.</cite>
( (<time>2016-05-09 19:26:38 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/ssllabs/ssllabs-scan/">https://github.com/ssllabs/ssllabs-scan/</anchor-external></figcaption><blockquote><p>The rules of Go's ProxyFromEnvironment apply (HTTP_PROXY, HTTPS_PROXY, NO_PROXY, lowercase variants allowed).</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <cite xml:lang="en">GNU Wget 1.17.1 Manual: Proxies</cite>
( (<time>2016-06-01 00:34:48 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.gnu.org/software/wget/manual/html_node/Proxies.html">http://www.gnu.org/software/wget/manual/html_node/Proxies.html</anchor-external></figcaption><blockquote><p>following environment variables:</p><p>http_proxy</p><p>https_proxy</p><p>If set, the http_proxy and https_proxy variables should contain the URLs of the proxies for HTTP and HTTPS connections respectively.</p><p>ftp_proxy</p><p>This variable should contain the URL of the proxy for FTP connections. It is quite common that http_proxy and ftp_proxy are set to the same URL.</p><p>no_proxy</p><p>This variable should contain a comma-separated list of domain extensions proxy should not be used for. For instance, if the value of no_proxy is ‘.mit.edu’, proxy will not be used to retrieve documents from MIT.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> <cite xml:lang="en">GNU Wget 1.17.1 Manual: Proxies</cite>
( (<time>2016-06-01 00:35:33 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.gnu.org/software/wget/manual/html_node/Proxies.html">http://www.gnu.org/software/wget/manual/html_node/Proxies.html</anchor-external></figcaption><blockquote><p>Some proxy servers require authorization to enable you to use them. The authorization consists of username and password, which must be sent by Wget. As with HTTP authorization, several authentication schemes exist. For proxy authorization only the Basic authentication scheme is currently implemented.</p><p>You may specify your username and password either through the proxy URL or through the command-line options. Assuming that the company’s proxy is located at ‘proxy.company.com’ at port 8001, a proxy URL location containing authorization data might look like this:</p><p>http://hniksic:mypassword@proxy.company.com:8001/</p><p>Alternatively, you may use the ‘proxy-user’ and ‘proxy-password’ options, and the equivalent .wgetrc settings proxy_user and proxy_password to set the proxy username and password.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <cite>cURL - How To Use</cite>
( (<time>2016-05-31 06:05:05 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://curl.haxx.se/docs/manpage.html#--noproxy">https://curl.haxx.se/docs/manpage.html#--noproxy</anchor-external></figcaption><blockquote><p>--noproxy &lt;no-proxy-list&gt;</p><p>Comma-separated list of hosts which do not use a proxy, if one is specified. The only wildcard is a single * character, which matches all hosts, and effectively disables the proxy. Each name in this list is matched as either a domain which contains the hostname, or the hostname itself. For example, local.com would match local.com, local.com:80, and www.local.com, but not www.notlocal.com. (Added in 7.19.4).</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> <cite>cURL - How To Use</cite>
( (<time>2016-05-31 06:05:05 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://curl.haxx.se/docs/manpage.html#ENVIRONMENT">https://curl.haxx.se/docs/manpage.html#ENVIRONMENT</anchor-external></figcaption><blockquote><p>The environment variables can be specified in lower case or upper case. The lower case version has precedence. http_proxy is an exception as it is only available in lower case.</p><p>Using an environment variable to set the proxy has the same effect as using the --proxy option.</p><p>http_proxy <strong>[</strong>protocol://<strong>]</strong>&lt;host&gt;<strong>[</strong>:port<strong>]</strong></p><p>Sets the proxy server to use for HTTP.</p><p>HTTPS_PROXY <strong>[</strong>protocol://<strong>]</strong>&lt;host&gt;<strong>[</strong>:port<strong>]</strong></p><p>Sets the proxy server to use for HTTPS.</p><p><strong>[</strong>url-protocol<strong>]</strong>_PROXY <strong>[</strong>protocol://<strong>]</strong>&lt;host&gt;<strong>[</strong>:port<strong>]</strong></p><p>Sets the proxy server to use for <strong>[</strong>url-protocol<strong>]</strong>, where the protocol is a protocol that curl supports and as specified in a URL. FTP, FTPS, POP3, IMAP, SMTP, LDAP etc.</p><p>ALL_PROXY <strong>[</strong>protocol://<strong>]</strong>&lt;host&gt;<strong>[</strong>:port<strong>]</strong></p><p>Sets the proxy server to use if no protocol-specific proxy is set.</p><p>NO_PROXY &lt;comma-separated list of hosts&gt;</p><p>list of host names that shouldn't go through any proxy. If set to a asterisk '*' only, it matches all hosts.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> <cite>W3M FAQ</cite>
( (<time>2001-02-01 18:02:39 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://homepage2.nifty.com/aito/w3m/FAQ.html">http://homepage2.nifty.com/aito/w3m/FAQ.html</anchor-external></figcaption><blockquote><p>環境変数 HTTP_proxy を設定するか,&quot;o&quot; コマンドのオプション設定パネル で設定します.例えば proxy.hogege.com というホストの 8000番ポートを 利用する場合,</p><p>http://proxy.hogege.com:8000/</p><p>と設定します.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <cite>LWP::UserAgent - search.cpan.org</cite>
( (<time>2016-06-01 01:04:32 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm#Proxy_attributes">http://search.cpan.org/dist/libwww-perl/lib/LWP/UserAgent.pm#Proxy_attributes</anchor-external></figcaption><blockquote><p>Load proxy settings from *_proxy environment variables. You might specify proxies like this (sh-syntax):</p><p>gopher_proxy=http://proxy.my.place/</p><p>wais_proxy=http://proxy.my.place/</p><p>no_proxy=&quot;localhost,example.com&quot;</p><p>export gopher_proxy wais_proxy no_proxy</p><p>csh or tcsh users should use the setenv command to define these environment variables.</p><p>On systems with case insensitive environment variables there exists a name clash between the CGI environment variables and the HTTP_PROXY environment variable normally picked up by env_proxy(). Because of this HTTP_PROXY is not honored for CGI scripts. The CGI_HTTP_PROXY environment variable can be used instead.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> <cite xml:lang="ja">プロキシ下でLinuxを使う際のメモ - Λlisue's blog</cite>
( (<time>2016-06-01 01:07:06 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lambdalisue.hatenablog.com/entry/2013/06/25/140630">http://lambdalisue.hatenablog.com/entry/2013/06/25/140630</anchor-external></figcaption><blockquote><p># 認証が必要なプロキシの場合</p><p>PROXY=&quot;$USERNAME:$PASSWORD@$HOST:$PORT&quot;</p><p># 認証が不要なプロキシの場合</p><p>PROXY=&quot;$HOST:$PORT&quot;</p><p># 実際の環境変数の設定</p><p>export http_proxy=&quot;http://$PROXY&quot;</p><p>export https_proxy=&quot;https://$PROXY&quot;</p><p>export ftp_proxy=&quot;ftp://$PROXY&quot;</p><p># 大文字バージョンしか認識しないプログラム用</p><p>export HTTP_PROXY=&quot;http://$PROXY&quot;</p><p>export HTTPS_PROXY=&quot;https://$PROXY&quot;</p><p>export FTP_PROXY=&quot;ftp://$PROXY&quot;</p><p># プロキシを利用しないアドレスの指定(必須)</p><p>export no_proxy=&quot;127.0.0.1,localhost&quot;</p><p>export NO_PROXY=&quot;$no_proxy&quot;</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> <cite>いつか見た惑星: プロキシ環境下でgitを使う</cite>
( (<time>2016-04-27 04:13:21 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://sushichop.blogspot.jp/2013/09/git.html">http://sushichop.blogspot.jp/2013/09/git.html</anchor-external></figcaption><blockquote><p>認証付きプロキシサーバの場合は認証ID、PW込みでプロキシ指定する。また、認証ID、PW、プロキシサーバURLにURIとして使用できない文字(@等)が含まれる場合はURLエンコードすること。 </p><p>書式</p><p>$ git config --global http.proxy http://認証ID:認証PW@プロキシサーバのURL:ポート番号</p><p>$ git config --global https.proxy http://認証ID:認証PW@プロキシサーバのURL:ポート番号</p><p>設定例(認証IDがfoo.bar@example.com、認証PWがhogepassの場合)</p><p>$ git config --global http.proxy http://foo.bar%40example.com:hogepass@proxy.example.com:8080</p><p>$ git config --global https.proxy http://foo.bar%40example.com:hogepass@proxy.example.com:8080</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> <cite xml:lang="ja">no_proxy にネットワークアドレスとかワイルドカードを指定しても期待通りに動かない、でどうするかというお話 - 双六工場日誌</cite>
( (<time>2016-06-01 01:09:42 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://sechiro.hatenablog.com/entry/2013/08/06/no_proxy_%E3%81%AB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%8B%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%E3%82%92">http://sechiro.hatenablog.com/entry/2013/08/06/no_proxy_%E3%81%AB%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%81%A8%E3%81%8B%E3%83%AF%E3%82%A4%E3%83%AB%E3%83%89%E3%82%AB%E3%83%BC%E3%83%89%E3%82%92</anchor-external></figcaption><blockquote><p>ただ、この際の「no_proxy」の仕様が曲者で、僕が確認したプログラムではここに設定できるのは「IPアドレス」もしくは「ドメイン名」のみとなっており、プロキシを経由したくないIPアドレスを複数指定する場合は、IPアドレスをひたすらカンマ区切りで列挙する必要があります。たとえば、内部サーバへの接続の際にIPアドレスをそのまま使っている場合、プロキシ経由してほしくないIPアドレスのすべてをここに書き下すことになります。 たとえば&quot;192.168.0.0/24&quot;とか&quot;172.16.0.*&quot;といった、ネットワークアドレスでの指定やワイルドカードでの指定は期待通りの動作になりません。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <cite xml:lang="en">821655 – System proxy settings via $http_proxy/$HTTP_PROXY are not recognized anymore</cite>
( (<time>2016-06-01 01:10:52 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=821655">https://bugzilla.mozilla.org/show_bug.cgi?id=821655</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> <cite>lftp.1</cite>
( (<time>2016-05-19 18:00:12 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://lftp.yar.ru/lftp-man.html">http://lftp.yar.ru/lftp-man.html</anchor-external></figcaption><blockquote><p>ftp:proxy (URL)</p><p>specifies FTP proxy to use.  To disable proxy set this to empty string. Note  that  it</p><p>is a FTP proxy which uses FTP protocol, not FTP over HTTP. Default value is taken from</p><p>environment variable ftp_proxy if  it  starts  with  ``ftp://<em>.  If  your  FTP  proxy</em></p><p>requires  authentication,  specify  user  name  and password in the URL.  If ftp:proxy</p><p>starts with http:// then hftp protocol (FTP over HTTP proxy) is used  instead  of  FTP</p><p>automatically.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> <cite xml:lang="en">httpoxy</cite>
(<time>2016-07-19 07:03:53 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://httpoxy.org/">https://httpoxy.org/</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> <cite xml:lang="en">Class: URI::Generic (Ruby 2.3.1)</cite>
(<time>2016-07-15 01:11:21 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://ruby-doc.org/stdlib-2.3.1/libdoc/uri/rdoc/URI/Generic.html#method-i-find_proxy">http://ruby-doc.org/stdlib-2.3.1/libdoc/uri/rdoc/URI/Generic.html#method-i-find_proxy</anchor-external></figcaption><blockquote><p>returns a proxy URI. The proxy URI is obtained from environment variables such as http_proxy, ftp_proxy, no_proxy, etc. If there is no proper proxy, nil is returned.</p><p>Note that capitalized variables (HTTP_PROXY, FTP_PROXY, NO_PROXY, etc.) are examined too.</p><p>But http_proxy and HTTP_PROXY is treated specially under CGI environment. It’s because HTTP_PROXY may be set by Proxy: header. So HTTP_PROXY is not used. http_proxy is not used too if the variable is case insensitive. CGI_HTTP_PROXY can be used instead.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> <cite>Re: libwww-perl-5.51 (with CGI security fix) - nntp.perl.org</cite>
(<time>2016-07-19 07:11:30 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://www.nntp.perl.org/group/perl.libwww/2001/03/msg2249.html">http://www.nntp.perl.org/group/perl.libwww/2001/03/msg2249.html</anchor-external></figcaption><blockquote><p>Changes since release 5.50 are:</p><p>SECURITY FIX: If LWP::UserAgent::env_proxy is called in a CGI</p><p>environment, the case-insensitivity when looking for &quot;http_proxy&quot;</p><p>permits &quot;HTTP_PROXY&quot; to be found, but this can be trivially set by the</p><p>web client using the &quot;Proxy:&quot; header.  The fix applied is that</p><p>$ENV{HTTP_PROXY} is not longer honored for CGI scripts.</p><p>The CGI_HTTP_PROXY environment variable can be used instead.</p><p>Problem reported by Randal L. Schwartz.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> <cite xml:lang="en">we don't use the HTTP_PROXY environment variable in uppercase anymore…</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">bagder</anchor>著, <time>2001-04-11 23:13:52 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/curl/curl/commit/18f044f19d26f2b6dcd41796966f488a62a1bdca">https://github.com/curl/curl/commit/18f044f19d26f2b6dcd41796966f488a62a1bdca</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <cite xml:lang="en">net/http, net/http/cgi: fix HTTP_PROXY security issue · Issue #16405 · golang/go</cite>
(<time>2016-07-19 09:55:22 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/golang/go/issues/16405">https://github.com/golang/go/issues/16405</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <cite xml:lang="en-US">Mitigating the HTTPoxy Vulnerability with NGINX</cite>
(<time>2016-07-20 10:55:26 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx/">https://www.nginx.com/blog/mitigating-the-httpoxy-vulnerability-with-nginx/</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite xml:lang="en">1048535 – Cross-origin info leak: <strong>[</strong><strong>[</strong>get<strong>]</strong><strong>]</strong> calls on global expose text (or CSV) sniffed as JS</cite>
(<time>2016-07-26 21:12:28 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://bugzilla.mozilla.org/show_bug.cgi?id=1048535">https://bugzilla.mozilla.org/show_bug.cgi?id=1048535</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> <cite xml:lang="en">sources.list(5) — apt — Debian jessie — Debian Manpages</cite>
( (<time>2017-05-18 18:49:30 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://manpages.debian.org/jessie/apt/sources.list.5.en.html#URI_SPECIFICATION">https://manpages.debian.org/jessie/apt/sources.list.5.en.html#URI_SPECIFICATION</anchor-external></figcaption><blockquote><p>If an environment variable http_proxy is set with the format http://server:port/, the proxy server specified in http_proxy will be used. Users of authenticated HTTP/1.1 proxies may use a string of the format http://user:pass@server:port/. Note that this is an insecure method of authentication.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> <cite xml:lang="en">sources.list(5) — apt — Debian jessie — Debian Manpages</cite>
( (<time>2017-05-18 18:49:30 +09:00</time>))
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://manpages.debian.org/jessie/apt/sources.list.5.en.html#URI_SPECIFICATION">https://manpages.debian.org/jessie/apt/sources.list.5.en.html#URI_SPECIFICATION</anchor-external></figcaption><blockquote><p>Please note that an FTP proxy can be specified by using the ftp_proxy environment variable. It is possible to specify an HTTP proxy (HTTP proxy servers often understand FTP URLs) using this environment variable and only this environment variable. Proxies using HTTP specified in the configuration file will be ignored.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> <cite xml:lang="en">Loosen `noProxy` values.</cite>
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">shs96c</anchor>著, <time>2017-08-30 22:57:55 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/commit/1d43225b164368a835ed401a4edcdaadb8b6bf0e">https://github.com/w3c/webdriver/commit/1d43225b164368a835ed401a4edcdaadb8b6bf0e</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> <cite xml:lang="en">Clarify validation of noProxy entries to not only be hosts or IP addresses · Issue #1068 · w3c/webdriver</cite>
(<time>2017-08-31 14:57:40 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/issues/1068">https://github.com/w3c/webdriver/issues/1068</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="50" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[50]</anchor-end> <cite xml:lang="en">Loosen `noProxy` values. by shs96c · Pull Request #1070 · w3c/webdriver</cite>
(<time>2017-08-31 14:57:49 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/pull/1070">https://github.com/w3c/webdriver/pull/1070</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="51" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[51]</anchor-end> <cite xml:lang="en-US">No Proxy For configuration | MDN</cite>
(<time>2017-01-30 21:27:29 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://developer.mozilla.org/en-US/docs/No_Proxy_For_configuration">https://developer.mozilla.org/en-US/docs/No_Proxy_For_configuration</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="52" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[52]</anchor-end> <cite xml:lang="en">Specify secure web proxy with a password · Issue #1150 · w3c/webdriver</cite>
(<time>2018-01-07 14:17:17 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/w3c/webdriver/issues/1150">https://github.com/w3c/webdriver/issues/1150</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="53" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[53]</anchor-end> <cite xml:lang="en">mpg123(1): play audio MPEG 1.0/2.0/2.5 stream - Linux man page</cite>
(<time>2018-02-12 15:03:58 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://linux.die.net/man/1/mpg123">https://linux.die.net/man/1/mpg123</anchor-external></figcaption><blockquote><p>mpg123 examines the environment for variables named MP3_HTTP_PROXY, http_proxy and HTTP_PROXY, in this order.</p></blockquote></figure><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="54" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[54]</anchor-end> <cite>AnyEvent::HTTP - search.cpan.org</cite>
(<time>2018-03-09 18:10:27 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://search.cpan.org/dist/AnyEvent-HTTP/HTTP.pm#GLOBAL_FUNCTIONS_AND_VARIABLES">http://search.cpan.org/dist/AnyEvent-HTTP/HTTP.pm#GLOBAL_FUNCTIONS_AND_VARIABLES</anchor-external></figcaption><blockquote><p>When AnyEvent::HTTP is loaded for the first time it will query the default proxy from the operating system, currently by looking at $ENV{http_proxy}.</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="57" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[57]</anchor-end> <cite xml:lang="en">Configure Docker to use a proxy server | Docker Documentation</cite>
(<time>2019-05-26 07:53:02 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.docker.com/network/proxy/">https://docs.docker.com/network/proxy/</anchor-external></p><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="58" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[58]</anchor-end> <cite xml:lang="ja-JP">class URI::Generic (Ruby 2.6.0)</cite>
(<time>2018-12-27 18:15:55 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://docs.ruby-lang.org/ja/latest/class/URI=3a=3aGeneric.html">https://docs.ruby-lang.org/ja/latest/class/URI=3a=3aGeneric.html</anchor-external></figcaption><blockquote><p>プロキシ URI は http_proxy, ftp_proxy, no_proxy などの環境変数から取得 します。適切なプロキシが見つからない場合は nil を返します。</p><p>環境変数は大文字にしたもの(HTTP_PROXY, FTP_PROXY, NO_PROXYなど)も調べら れる事に注意してください。</p><p>ただし、CGI環境下では http_proxy と HTTP_PROXY は特別扱いされます。 HTTP_PROXY はヘッダ Proxy: に設定されうるためです。そのため、 HTTP_PROXY(環境変数が大文字小文字を区別しない場合は http_proxy も) は使 われません。代わりに CGI_HTTP_PROXY が使われます。</p></blockquote></figure><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="59" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[59]</anchor-end> <cite>curl - How To Use</cite>
(<time>2020-09-21T09:01:13.000Z</time>, <time>2020-10-01T06:26:00.533Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://curl.haxx.se/docs/manpage.html#--preproxy">https://curl.haxx.se/docs/manpage.html#--preproxy</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="60" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[60]</anchor-end> <cite>curl - How To Use</cite>
(<time>2020-09-21T09:01:13.000Z</time>, <time>2020-10-01T06:29:04.467Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://curl.haxx.se/docs/manpage.html#-x">https://curl.haxx.se/docs/manpage.html#-x</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="61" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[61]</anchor-end> <cite xml:lang="en">GNU Wget 1.20 Manual</cite>
(<time>2020-10-01T07:36:17.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://www.gnu.org/software/wget/manual/wget.html#index-proxies">https://www.gnu.org/software/wget/manual/wget.html#index-proxies</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="62" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[62]</anchor-end> <cite xml:lang="en">Command-Line Interface — Streamlink 1.6.0 documentation</cite>
(<time>2020-09-30T20:32:48.000Z</time>, <time>2020-10-01T07:45:05.406Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://streamlink.github.io/cli.html#proxy-support">https://streamlink.github.io/cli.html#proxy-support</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="63" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[63]</anchor-end> <cite xml:lang="en">ytdl-org/youtube-dl: Command-line program to download videos from YouTube.com and other video sites</cite>
(<time>2020-10-01T08:12:08.000Z</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://github.com/ytdl-org/youtube-dl#network-options">https://github.com/ytdl-org/youtube-dl#network-options</anchor-external></p></section></body></html>