123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442 |
- --TEST--
- Test basic function : variation5 use_trans_sid
- --INI--
- session.use_strict_mode=0
- session.use_only_cookies=0
- session.use_trans_sid=1
- session.save_handler=files
- session.hash_bits_per_character=4
- session.hash_function=0
- session.gc_probability=1
- session.gc_divisor=1000
- session.gc_maxlifetime=300
- session.save_path=
- session.name=PHPSESSID
- --EXTENSIONS--
- session
- --SKIPIF--
- <?php include('skipif.inc'); ?>
- --FILE--
- <?php
- ob_start();
- $_SERVER['HTTP_HOST'] = 'php.net';
- ini_set('session.trans_sid_hosts','php.net,example.com');
- echo "*** Testing basic session functionality : variation5 use_trans_sid ***\n";
- echo "*** Test trans sid ***\n";
- $session_id = 'session-basic5';
- session_id($session_id);
- session_start();
- // Should add session ID to allowed hosts only for SECURITY
- echo '
- <a href="/">test</a>
- <a href="/path">test</a>
- <a href="/path/">test</a>
- <a href="/path/?foo=var">test</a>
- <a href="../">test</a>
- <a href="../path">test</a>
- <a href="../path/">test</a>
- <a href="../path/?foo=var">test</a>
- <a href="/#bar">test</a>
- <a href="/path/#bar">test</a>
- <a href="/path/?foo=var#bar">test</a>
- <a href="../#bar">test</a>
- <a href="../path/#bar">test</a>
- <a href="../path/?foo=var#bar">test</a>
- <a href="/?foo">test</a>
- <a href="/?foo#bar">test</a>
- <a href="/?foo=var">test</a>
- <a href="/?foo=var#bar">test</a>
- <a href="../?foo">test</a>
- <a href="../?foo#bar">test</a>
- <a href="../?foo=var">test</a>
- <a href="../?foo=var#bar">test</a>
- <a href="file.php">test</a>
- <a href="file.php?foo">test</a>
- <a href="file.php?foo=var">test</a>
- <a href="file.php?foo=var#bar">test</a>
- <a href="../file.php">test</a>
- <a href="../file.php?foo">test</a>
- <a href="../file.php?foo=var">test</a>
- <a href="../file.php?foo=var#bar">test</a>
- <a href="http://php.net">test</a>
- <a href="http://php.net/">test</a>
- <a href="http://php.net/#bar">test</a>
- <a href="http://php.net/?foo">test</a>
- <a href="http://php.net/?foo#bar">test</a>
- <a href="http://php.net/?foo=var">test</a>
- <a href="http://php.net/?foo=var#bar">test</a>
- <a href="http://php.net/file.php">test</a>
- <a href="http://php.net/file.php#bar">test</a>
- <a href="http://php.net/file.php?foo">test</a>
- <a href="http://php.net/file.php?foo#bar">test</a>
- <a href="http://php.net/file.php?foo=var">test</a>
- <a href="http://php.net/file.php?foo=var#bar">test</a>
- <a href="http://php.net/some/path/file.php">test</a>
- <a href="http://php.net/some/path/file.php?foo">test</a>
- <a href="http://php.net/some/path/file.php?foo=var">test</a>
- <a href="http://php.net/some/path/file.php?foo=var#bar">test</a>
- <a href="https://php.net">test</a>
- <a href="https://php.net/">test</a>
- <a href="https://php.net/?foo=var#bar">test</a>
- <a href="https://php.net/file.php">test</a>
- <a href="https://php.net/file.php?foo=var#bar">test</a>
- <a href="https://php.net/some/path/file.php">test</a>
- <a href="https://php.net/some/path/file.php?foo=var#bar">test</a>
- <a href="https://php.net:8443">test</a>
- <a href="https://php.net:8443/">test</a>
- <a href="https://php.net:8443/?foo=var#bar">test</a>
- <a href="https://php.net:8443/file.php">test</a>
- <a href="https://php.net:8443/file.php?foo=var#bar">test</a>
- <a href="https://php.net:8443/some/path/file.php">test</a>
- <a href="https://php.net:8443/some/path/file.php?foo=var#bar">test</a>
- <a href="//php.net">test</a>
- <a href="//php.net/">test</a>
- <a href="//php.net/#bar">test</a>
- <a href="//php.net/?foo">test</a>
- <a href="//php.net/?foo#bar">test</a>
- <a href="//php.net/?foo=var">test</a>
- <a href="//php.net/?foo=var#bar">test</a>
- <a href="//php.net/file.php">test</a>
- <a href="//php.net/file.php#bar">test</a>
- <a href="//php.net/file.php?foo">test</a>
- <a href="//php.net/file.php?foo#bar">test</a>
- <a href="//php.net/file.php?foo=var">test</a>
- <a href="//php.net/file.php?foo=var#bar">test</a>
- <a href="//php.net/some/path/file.php">test</a>
- <a href="//php.net/some/path/file.php?foo">test</a>
- <a href="//php.net/some/path/file.php?foo=var">test</a>
- <a href="//php.net/some/path/file.php?foo=var#bar">test</a>
- <form action="script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="../script.php" method="post">r
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="/path/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="../path/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="http://php.net/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="https://php.net/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="//php.net/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <a href="http://bad.com">test</a>
- <a href="http://bad.com/">test</a>
- <a href="http://bad.com/#bar">test</a>
- <a href="http://bad.com/?foo">test</a>
- <a href="http://bad.com/?foo#bar">test</a>
- <a href="http://bad.com/?foo=var">test</a>
- <a href="http://bad.com/?foo=var#bar">test</a>
- <a href="http://bad.com/file.php">test</a>
- <a href="http://bad.com/file.php#bar">test</a>
- <a href="http://bad.com/file.php?foo">test</a>
- <a href="http://bad.com/file.php?foo#bar">test</a>
- <a href="http://bad.com/file.php?foo=var">test</a>
- <a href="http://bad.com/file.php?foo=var#bar">test</a>
- <a href="http://bad.com/some/path/file.php">test</a>
- <a href="http://bad.com/some/path/file.php?foo">test</a>
- <a href="http://bad.com/some/path/file.php?foo=var">test</a>
- <a href="http://bad.com/some/path/file.php?foo=var#bar">test</a>
- <a href="https://bad.com">test</a>
- <a href="https://bad.com/">test</a>
- <a href="https://bad.com/?foo=var#bar">test</a>
- <a href="https://bad.com/file.php">test</a>
- <a href="https://bad.com/file.php?foo=var#bar">test</a>
- <a href="https://bad.com/some/path/file.php">test</a>
- <a href="https://bad.com/some/path/file.php?foo=var#bar">test</a>
- <a href="https://bad.com:8443">test</a>
- <a href="https://bad.com:8443/">test</a>
- <a href="https://bad.com:8443/?foo=var#bar">test</a>
- <a href="https://bad.com:8443/file.php">test</a>
- <a href="https://bad.com:8443/file.php?foo=var#bar">test</a>
- <a href="https://bad.com:8443/some/path/file.php">test</a>
- <a href="https://bad.com:8443/some/path/file.php?foo=var#bar">test</a>
- <a href="//bad.com">test</a>
- <a href="//bad.com/">test</a>
- <a href="//bad.com/#bar">test</a>
- <a href="//bad.com/?foo">test</a>
- <a href="//bad.com/?foo#bar">test</a>
- <a href="//bad.com/?foo=var">test</a>
- <a href="//bad.com/?foo=var#bar">test</a>
- <a href="//bad.com/file.php">test</a>
- <a href="//bad.com/file.php#bar">test</a>
- <a href="//bad.com/file.php?foo">test</a>
- <a href="//bad.com/file.php?foo#bar">test</a>
- <a href="//bad.com/file.php?foo=var">test</a>
- <a href="//bad.com/file.php?foo=var#bar">test</a>
- <a href="//bad.com/some/path/file.php">test</a>
- <a href="//bad.com/some/path/file.php?foo">test</a>
- <a href="//bad.com/some/path/file.php?foo=var">test</a>
- <a href="//bad.com/some/path/file.php?foo=var#bar">test</a>
- <form action="//bad.com/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="https://bad.com/foo/../script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="https://bad.com//path/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="https://bad.com/foo/bar../path/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="http://bad.com/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="https://bad.com/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="//bad.com/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- ';
- var_dump(session_commit());
- echo "*** Cleanup ***\n";
- var_dump(session_start());
- var_dump(session_id());
- var_dump(session_destroy());
- ob_end_flush();
- ?>
- --EXPECT--
- *** Testing basic session functionality : variation5 use_trans_sid ***
- *** Test trans sid ***
- <a href="/?PHPSESSID=session-basic5">test</a>
- <a href="/path?PHPSESSID=session-basic5">test</a>
- <a href="/path/?PHPSESSID=session-basic5">test</a>
- <a href="/path/?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="../?PHPSESSID=session-basic5">test</a>
- <a href="../path?PHPSESSID=session-basic5">test</a>
- <a href="../path/?PHPSESSID=session-basic5">test</a>
- <a href="../path/?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="/?PHPSESSID=session-basic5#bar">test</a>
- <a href="/path/?PHPSESSID=session-basic5#bar">test</a>
- <a href="/path/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="../?PHPSESSID=session-basic5#bar">test</a>
- <a href="../path/?PHPSESSID=session-basic5#bar">test</a>
- <a href="../path/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="/?foo&PHPSESSID=session-basic5">test</a>
- <a href="/?foo&PHPSESSID=session-basic5#bar">test</a>
- <a href="/?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="../?foo&PHPSESSID=session-basic5">test</a>
- <a href="../?foo&PHPSESSID=session-basic5#bar">test</a>
- <a href="../?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="../?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="file.php?PHPSESSID=session-basic5">test</a>
- <a href="file.php?foo&PHPSESSID=session-basic5">test</a>
- <a href="file.php?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="../file.php?PHPSESSID=session-basic5">test</a>
- <a href="../file.php?foo&PHPSESSID=session-basic5">test</a>
- <a href="../file.php?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="../file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/?PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/?PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/?PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/?foo&PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/?foo&PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/file.php?PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/file.php?PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/file.php?foo&PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/file.php?foo&PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/file.php?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="http://php.net/some/path/file.php?PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/some/path/file.php?foo&PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/some/path/file.php?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="http://php.net/some/path/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="https://php.net/?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net/?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="https://php.net/file.php?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="https://php.net/some/path/file.php?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net/some/path/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="https://php.net:8443/?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net:8443/?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net:8443/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="https://php.net:8443/file.php?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net:8443/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="https://php.net:8443/some/path/file.php?PHPSESSID=session-basic5">test</a>
- <a href="https://php.net:8443/some/path/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/?PHPSESSID=session-basic5">test</a>
- <a href="//php.net/?PHPSESSID=session-basic5">test</a>
- <a href="//php.net/?PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/?foo&PHPSESSID=session-basic5">test</a>
- <a href="//php.net/?foo&PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="//php.net/?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/file.php?PHPSESSID=session-basic5">test</a>
- <a href="//php.net/file.php?PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/file.php?foo&PHPSESSID=session-basic5">test</a>
- <a href="//php.net/file.php?foo&PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/file.php?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="//php.net/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <a href="//php.net/some/path/file.php?PHPSESSID=session-basic5">test</a>
- <a href="//php.net/some/path/file.php?foo&PHPSESSID=session-basic5">test</a>
- <a href="//php.net/some/path/file.php?foo=var&PHPSESSID=session-basic5">test</a>
- <a href="//php.net/some/path/file.php?foo=var&PHPSESSID=session-basic5#bar">test</a>
- <form action="script.php" method="post"><input type="hidden" name="PHPSESSID" value="session-basic5" />
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="../script.php" method="post"><input type="hidden" name="PHPSESSID" value="session-basic5" />r
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="/path/script.php" method="post"><input type="hidden" name="PHPSESSID" value="session-basic5" />
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="../path/script.php" method="post"><input type="hidden" name="PHPSESSID" value="session-basic5" />
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="http://php.net/script.php"><input type="hidden" name="PHPSESSID" value="session-basic5" />
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="https://php.net/script.php"><input type="hidden" name="PHPSESSID" value="session-basic5" />
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="//php.net/script.php"><input type="hidden" name="PHPSESSID" value="session-basic5" />
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <a href="http://bad.com">test</a>
- <a href="http://bad.com/">test</a>
- <a href="http://bad.com/#bar">test</a>
- <a href="http://bad.com/?foo">test</a>
- <a href="http://bad.com/?foo#bar">test</a>
- <a href="http://bad.com/?foo=var">test</a>
- <a href="http://bad.com/?foo=var#bar">test</a>
- <a href="http://bad.com/file.php">test</a>
- <a href="http://bad.com/file.php#bar">test</a>
- <a href="http://bad.com/file.php?foo">test</a>
- <a href="http://bad.com/file.php?foo#bar">test</a>
- <a href="http://bad.com/file.php?foo=var">test</a>
- <a href="http://bad.com/file.php?foo=var#bar">test</a>
- <a href="http://bad.com/some/path/file.php">test</a>
- <a href="http://bad.com/some/path/file.php?foo">test</a>
- <a href="http://bad.com/some/path/file.php?foo=var">test</a>
- <a href="http://bad.com/some/path/file.php?foo=var#bar">test</a>
- <a href="https://bad.com">test</a>
- <a href="https://bad.com/">test</a>
- <a href="https://bad.com/?foo=var#bar">test</a>
- <a href="https://bad.com/file.php">test</a>
- <a href="https://bad.com/file.php?foo=var#bar">test</a>
- <a href="https://bad.com/some/path/file.php">test</a>
- <a href="https://bad.com/some/path/file.php?foo=var#bar">test</a>
- <a href="https://bad.com:8443">test</a>
- <a href="https://bad.com:8443/">test</a>
- <a href="https://bad.com:8443/?foo=var#bar">test</a>
- <a href="https://bad.com:8443/file.php">test</a>
- <a href="https://bad.com:8443/file.php?foo=var#bar">test</a>
- <a href="https://bad.com:8443/some/path/file.php">test</a>
- <a href="https://bad.com:8443/some/path/file.php?foo=var#bar">test</a>
- <a href="//bad.com">test</a>
- <a href="//bad.com/">test</a>
- <a href="//bad.com/#bar">test</a>
- <a href="//bad.com/?foo">test</a>
- <a href="//bad.com/?foo#bar">test</a>
- <a href="//bad.com/?foo=var">test</a>
- <a href="//bad.com/?foo=var#bar">test</a>
- <a href="//bad.com/file.php">test</a>
- <a href="//bad.com/file.php#bar">test</a>
- <a href="//bad.com/file.php?foo">test</a>
- <a href="//bad.com/file.php?foo#bar">test</a>
- <a href="//bad.com/file.php?foo=var">test</a>
- <a href="//bad.com/file.php?foo=var#bar">test</a>
- <a href="//bad.com/some/path/file.php">test</a>
- <a href="//bad.com/some/path/file.php?foo">test</a>
- <a href="//bad.com/some/path/file.php?foo=var">test</a>
- <a href="//bad.com/some/path/file.php?foo=var#bar">test</a>
- <form action="//bad.com/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="https://bad.com/foo/../script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="https://bad.com//path/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form action="https://bad.com/foo/bar../path/script.php" method="post">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="http://bad.com/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="https://bad.com/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- <form method="post" action="//bad.com/script.php">
- <input type="text" name="test1"></input>
- <input type="text" name="test2" />
- </form>
- bool(true)
- *** Cleanup ***
- bool(true)
- string(14) "session-basic5"
- bool(true)
|