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.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);
}
No.2
- 回答日時:
nonchiさんと同意見です。
どうしても毎回フォームで送ることができない場合は、
パスワードの部分を暗号化(復号化する必要がないのでハッシュで十分)して表示するのも手です。
単にパスワードだけのハッシュだと、
万が一、Referrerでアドレスを拾われた場合に入られてしまいますので、
時刻と組み合わせて、例えば5分毎にハッシュを変化させるなどすれば問題ないかと。
(自作掲示板ではそうしてます)
クッキーも捨てがたいんですけど・・・
お探しの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ランキング
-
エクセルで集計したい。
-
apacheでPerl CGIが作動せず、5...
-
一番簡単なCGI,掲示板の設置教...
-
/bin/awk '{print $5}'ってどう...
-
チェックボックスでのvalue値の...
-
CGIで得た内容をHTMlページに代入
-
前回はごめんなさい。pythonでc...
-
cgiからsendmailを送信で文字化け
-
フォームを再送信しますか?
-
cgiでのアクセスカウンターの表...
-
3DCG
-
ホームページにメールフォーム...
-
cgi アクセス制限 エラー
-
CGIの記述について教えてくださ...
-
CGIの設置が分かりません・・・
-
ホームページにCGIを設置したの...
-
ホームページにCGIを設置したの...
-
サーバーのエラーでおしえてく...
-
ホームページの事でおしえてく...
-
さくらサーバーにcgiフォームを...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HPのページないしリンクにパス...
-
VBSで既に開いているIEにパスワ...
-
.htaccess以外のパスワードのか...
-
Basic認証でパスワードを保存さ...
-
1人1回投票できる投票システム...
-
パスワード付のページを作るには
-
Java で、フォーム形式のデータ...
-
特定のコンピュータのみにアク...
-
OpenIDのユーザー識別について
-
ログインの作り方について
-
CGIを利用せずにウェブサイ...
-
Vbaである特定のインターネット...
-
パスワードを入れて次のページ...
-
一人一人違うパスワードで、同...
-
会員制ログインシステムを探し...
-
入力したユーザIDの取得
-
CGIでパスワードのセキュリ...
-
Perlプログラムにおいて、入力...
-
会員制サイト CGI
-
花台の位置は向かってどっちで...
おすすめ情報