bug72573-http-proxy.phpt 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. --TEST--
  2. FPM: bug72573 - HTTP_PROXY - CVE-2016-5385
  3. --SKIPIF--
  4. <?php include "skipif.inc"; ?>
  5. --FILE--
  6. <?php
  7. require_once "tester.inc";
  8. $cfg = <<<EOT
  9. [global]
  10. error_log = {{FILE:LOG}}
  11. [unconfined]
  12. listen = {{ADDR}}
  13. pm = dynamic
  14. pm.max_children = 5
  15. pm.start_servers = 1
  16. pm.min_spare_servers = 1
  17. pm.max_spare_servers = 3
  18. EOT;
  19. $code = <<<EOT
  20. <?php
  21. echo "Test Start\n";
  22. var_dump(
  23. @\$_SERVER["HTTP_PROXY"],
  24. \$_SERVER["HTTP_FOO"],
  25. getenv("HTTP_PROXY"),
  26. getenv("HTTP_FOO")
  27. );
  28. echo "Test End\n";
  29. EOT;
  30. $tester = new FPM\Tester($cfg, $code);
  31. $tester->start();
  32. $tester->expectLogStartNotices();
  33. $tester
  34. ->request(
  35. '',
  36. [
  37. 'HTTP_FOO' => 'BAR',
  38. 'HTTP_PROXY' => 'BADPROXY',
  39. ]
  40. )
  41. ->expectBody(
  42. [
  43. 'Test Start',
  44. 'NULL',
  45. 'string(3) "BAR"',
  46. 'bool(false)',
  47. 'string(3) "BAR"',
  48. 'Test End'
  49. ]
  50. );
  51. $tester->terminate();
  52. $tester->close();
  53. ?>
  54. Done
  55. --EXPECT--
  56. Done
  57. --CLEAN--
  58. <?php
  59. require_once "tester.inc";
  60. FPM\Tester::clean();
  61. ?>