CGI勉強中です。
ある掲示板CGIを改造して会員のみに使用可にしようと考えています。パスワード自体は無事組み込むことが出来たのですが、1つ問題が出ました。
掲示板なので、過去ログがありますよね。その過去ログページを表示しようとするとまた認証ページに戻ってしまい、パスワードを再度入力→最新10件のページに戻ってしまいます。どうにかして、1度入ったらパスワードを入力しなくてもいいようにしたいのですが…
今のところこうなってます。
///////////////
if ($pass_mode == '1'){ ←もしパスを使用するだったら
if ($F{'mode'} eq '') { &pass_mode} ←モード無しの場合、パス入力画面に移動
if ($F{'mode'} eq 'admin') { &admin} ←モードアドミニならsub adminへ
}
else{
if ($F{'mode'} eq '') { &main_form} ←メイン書き込みページへ
else { &{$F{'mode'}} }
}
///////
となっています。
また、過去ページへの移動は「**.cgi?pg=10&sort=」という感じです。
この状態で、ページ移動時にパス入力ページに移動しないようにするにはどうしたらいいでしょうか?cookieを使う必要があったりしますか?
抜けてる情報・足りない情報があったら指摘してください。すぐ補足します。言語はperlで書いています。
よろしくお願いします。
No.2
- 回答日時:
nonchiさんと同意見です。
どうしても毎回フォームで送ることができない場合は、
パスワードの部分を暗号化(復号化する必要がないのでハッシュで十分)して表示するのも手です。
単にパスワードだけのハッシュだと、
万が一、Referrerでアドレスを拾われた場合に入られてしまいますので、
時刻と組み合わせて、例えば5分毎にハッシュを変化させるなどすれば問題ないかと。
(自作掲示板ではそうしてます)
クッキーも捨てがたいんですけど・・・
No.3ベストアンサー
- 回答日時:
「ハッシュ」と書くとなにやら難しそうですが、要は元のパスワードを判らなくしてしまえばいいので、$hash('pass')とやって常に4が返る(passが4文字だから)だけでもハッシュになります。
文字列を入れると1~6ケタの数字を返す簡単なハッシュなら↓のようになります。
(全角スペースいれてますのでご注意を)
sub hash {
my ($str) = @_;
my $max = length($str);
my $hash = 0;
my $count = 0;
while ($count < $max) {
$hash = ($hash + ord(substr($str, $count, 1))) * 56911;
$hash = (int($hash / 100)) % 1000000;
$count++;
}
return ($hash);
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP PHP ページング データベース 1 2022/06/16 10:30
- CGI (フリーの)ツリー掲示版CGI、昔は多用させてもらいましたが・・今セキュリティ上どうでしょう? 2 2023/06/25 07:18
- gooポイント gooポイントをdポイントに交換できない。 3 2022/04/22 20:39
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- JavaScript JavaScriptで「〇以上▲まで」の書き方 1 2022/07/20 14:44
- PHP $_SESSIONに渡した後はそのまま使っても問題ありませんか? 3 2022/11/08 22:17
- WordPress(ワードプレス) WordPressのダッシュボードに入れなくなりました。 サイトのURLの最後にwp-login.p 1 2022/11/04 18:38
- JavaScript javascriptで移動ボタンを押した際に遷移するボタンを追記したい 1 2022/11/29 03:02
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
1人1回投票できる投票システム...
-
パスワードを入れて次のページ...
-
PowerShellでのエラー出力の読...
-
携帯のアンテナ基地の設置料の...
-
Wi-Fiルーターの交換設置につい...
-
アプリケーションのフリーズを...
-
複数フォルダを整列して表示vbs
-
PRO-FACE タッチパネル
-
VBスクリプト---アプリの終了に...
-
(フリーの)ツリー掲示版CGI、...
-
HPで「あなたは何人目です」...
-
フリーの画像掲示板
-
2ちゃんねるのような掲示板を...
-
お寺の門前に設置してある掲示...
-
一枚しかできない写真アップロ...
-
設置出来ない…
-
siteup.cgi というファイル名のCMS
-
自動人数カウンターってありま...
-
ホームページのカウントについて
-
OFF時のGoogle Map外枠
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBSで既に開いているIEにパスワ...
-
Basic認証でパスワードを保存さ...
-
.htaccess以外のパスワードのか...
-
HPのページないしリンクにパス...
-
1人1回投票できる投票システム...
-
BASIC認証のようなパスワード認...
-
入力したユーザIDの取得
-
アカウントIDとパスワードでリ...
-
PowerShellでのエラー出力の読...
-
設置出来ない…
-
VBスクリプト---アプリの終了に...
-
お寺の門前に設置してある掲示...
-
掲示板に画鋲、ホッチキス以外...
-
花台の位置は向かってどっちで...
-
パソコン用語「ツリー」って、...
-
PCケースのHDD設置方法につきま...
-
レジストリの設定をすぐに反映...
-
携帯のアンテナ基地の設置料の...
-
自動人数カウンターってありま...
-
シェルのSTEP数について教えて...
おすすめ情報