0

私はこれで髪を失っています。URLにセッションIDを追加するだけです。私がセキュリティリスクを受け入れる理由を説明するために:このサイトはモバイルでの使用を目的としています。一部のモバイルブラウザはCookieを受け入れません(通常、セッションIDが保存されます)。したがって、URLを介してセッションIDを解析する以外に選択肢はありません。

「だから、これは簡単だ。すべてのページの冒頭でこれを使うだけだ」と私は思った。

ini_set('session.use_trans_sid', 1);
session_start();

残念。動作しませんでした。Ok。次に、サブディレクトリ(モバイルサイトはメインサイトのサブディレクトリにあります)に.htaccessを作成しました。

php_flag session.use_trans_sid on
php_value session.use_trans_sid 1

無効。怒り出す。

次に、テストするためだけにphp.ini自体の設定を変更しようとしました(Webサーバーで実行されている残りのWebサイトは「URL-Session-ID」を使用してはならないため、オプションではありません)。したがって、このエントリが設定されていることを確認しました。

session.use_trans_sid = 1

次に、Webサーバーを再起動しましたが、驚いたことに、驚くことではありません。効果はありません。

いずれの場合も、phpinfo();を追加しました。ページの最後で、設定が有効かどうかを確認します。いずれの場合も、session.use_trans_sid = 1(phpinfo()による)であることが確認されました。

これは私が何かを見落とさなければならないことを意味します。誰かアイデアがありますか?今できることは、コード内のすべてのリンクにセッションIDを手動で追加することだけです。これを避けるのを手伝ってください...:)

あなたがそこに主演するすべてのアイデアはありますか?;)

BiB

4

2 に答える 2

1

ブラウザがCookieをサポートしている場合、URLは追加されないため、これを通常のブラウザでテストしていますか?

于 2012-04-09T17:36:36.160 に答える
0

わかりました...これは確かにそれでした。Oliravは問題を発見しました。

リダイレクトがどこかで行われると、システム全体が機能しなくなります。すべてのフォームとすべてのリンクで同じページを呼び出し、中央のファイルを実行して作業を行い、それに応じてリダイレクトします。これにより、use_trans_sidが効果的に強制終了されます。これは、その中央ファイルに実際に手動でsidを追加する必要があることを意味します。このようなもの:

header("Location: " . $url . "index.php?sid=" . session_id());

これが同じ問題を抱えている人に役立つことを願っています。:)

ありがとうOlirav !!!

于 2012-04-11T21:34:07.807 に答える