5

php.ini へのアクセスがない場合 (php -v >= 5.3 & mail.add_x_header = 1 と仮定)、またはメールにパッチを適用する方法がない場合、php の使用時に X-Php-Originating-Script ヘッダーを変更する方法はありますか?mail()関数?

私が行った小さな調査では$_SERVER['PHP_SELF']、呼び出す前に変更するとうまくいくことが示されmail()ましたが、これはうまくいきませんでした。

また、X-Php-Originating-Script を直接設定しようとしましたが、これにより「X-Php-Originating-Script」ヘッダーが追加されました。

この場合の目標は、上記の電子メールの受信者がスクリプトの命名法に関する詳細を確認できないようにすることです。

ありがとう!

4

3 に答える 3

3

mail()関数のソースコードを確認すると、そこにハードコードされていることがわかります。

if (headers != NULL) {
    spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s\n%s", php_getuid(), f, headers);
} else {
    spprintf(&hdr, 0, "X-PHP-Originating-Script: %ld:%s\n", php_getuid(), f);
}

したがって、uidを挿入するのはハードコーディングされています。しかし、それが私たちをどこに連れて行くか見てみましょう。

ここで、SAPIは基本的に、PHPと通信するさまざまなサーバーAPIの多態的な方法であることを理解する必要があります。したがって、いくつかのSAPIを見ると、次のようになります。

  • Apacheを使用したmod_php

    finfoこれは、 apacheが渡す構造を返すだけです。変更する機会はありません(環境変数ではありません)。それはapacheから直接来ます。だから運がない。

  • FPM

    これは実装すらしていませんsapi_get_stat()。したがって、デフォルトの動作は引き続き実行されます(これは現在のパスの基本的な統計です)。

したがって、簡単な答えはノーです。PHPのコアにパッチを適用しないと不可能です...

于 2013-03-15T17:03:36.040 に答える