質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Q&A

1回答

2222閲覧

CGI::SESSIONでセッションIDを再生成するには?

KarakuriHirose

総合スコア6

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

2グッド

1クリップ

投稿2018/08/27 11:11

編集2018/08/28 11:56

前提・実現したいこと

CGI::SESSIONを使用しています
休日にPerlで遊びがてら、簡単なログイン画面を作成しており、その時に発生した疑問です

発生している問題・エラーメッセージ

セキュリティーにはあまり詳しくはないんですが、セッション固定攻撃というのがあるというのを知りました
それにも対策をしてみようかと思いました
しかし、ドキュメントにはそれらについての記述が見当たりませんでした
PHPにはsession_regenerate_id()というセッションIDを再生成するための手段があると思います
そのため、Perlにも同等の機能があるはずだと思い込んでいましたが、各人で実装していかなければならないのでしょうか?

問題のソースコード

perl

1$session = CGI::Session->new(); 2$cookie = CGI::Cookie->new(-name => $session->name, -value => $session->id, -expires => '+1h', -secure => 1); 3 4print $cgi->header(-cookie => $cookie);

参考にしたサイト

どうぞよろしくお願いします

xjjojo, bwz61366👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ockeghem

2018/08/27 14:02

現状のプログラムで、セッションを使っている箇所のソースコードを示して下さい
m.ts10806

2018/08/28 00:27 編集

(perldoc読んだかの確認をしたコメントを記載していましたが「ドキュメントには」というのを見落としていたので削除)どのあたりを探したかリンクなども記載いただけますか?
KarakuriHirose

2018/08/28 14:20

ockeghemさん, mts10806さん>質問文を追記しました。
guest

回答1

0

試行錯誤的に調べたところ、以下のようにSessionをnewする際に第2パラメータに空文字列を指定すると、新しいセッションIDが生成されるようです。

Perl

1$session = CGI::Session->new(undef, '');

ただ、あくまで、「こうすれば所望の動作が得られた」というだけで、仕様として正しいのかは確認できていません。参考情報としてお伝えします。

投稿2018/08/29 07:05

ockeghem

総合スコア11701

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KarakuriHirose

2018/08/29 19:23

>Sessionをnewする際に第2パラメータに空文字列を指定すると、新しいセッションIDが生成される 現在検証できませんが、空文字列で再生成が可能だったのですね 第二引数にundefを指定した場合、セッション情報は維持されず、新しいセッションを生成するようだった(http://perldoc.jp/docs/modules/CGI-Session-3.11/Tutorial.pod#pod26368-21021-12395-12354-12394-12383-12364-30693-12427-12409-12365-20107)ので、空文字列でも同じものかと思い検証をしていませんでした もう一度ドキュメントを見直して、回答のコードの動作について書かれていないか確認しようと思います 非常に参考になりました ご回答をしていただき、ありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問