【復活求む!】惜しくも解散してしまったバンド|J-ROCK編 >>

phpでトップページログインフォームより会員がログインできる仕組みを作りたいと思っています。
この場合、ログイン認証部分のみSSL通信をおこないたいと考えています。

この場合、
トップページをhttps://toppage.html(sあり)とし、
ログインフォームのaction先を、http://check.php(sなし)のように考えていたのですが、

http://q-shu.net/futsukaichi/
こちらのサイトURLは、トップページがhttpになっており、
会員ログインフォームのaction先がhttps:〇〇〇
となっています。

てっきりログインフォームのあるページURLはhttpsでないと暗号化されないと思っていたのですが、
action先がhttpsになっていれば暗号化されてデータは送られるのでしょうか?

ご回答どうかよろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

> phpでトップページログインフォームより会員がログインできる仕組みを作りたいと思っています。


> この場合、ログイン認証部分のみSSL通信をおこないたいと考えています。

こういうことをしても許されるのって2000年代までだと思ってました。
https://www.verisign.co.jp/ssl/first/always-on-s …

その後のページでSSLを使っていないとなると、認証クッキーを盗聴して、なりすましし放題ですよね。
それに、SSLはスループットの良い暗号を選べば、随分CPU負荷が少ないと思います。

> action先がhttpsになっていれば暗号化されてデータは送られるのでしょうか?

はい。https://....と書いてあるなら、HTTPSで接続してデータを送信します。つまり、暗号化されています。本当に暗号化されるか不安ならwiresharkなどで実際の通信をダンプしてみると良いでしょう。

ちなみに、情報セキュリティというと、機密性(Confidential)、完全性(Integrity)、可用性(Availability)を考えます。それぞれ、権限がない人に情報を見せない、情報が改竄されていない、権限がある人が情報を利用できるという意味です。
「暗号化」と機密性にばかり注目しがちかもしれませんが、SSLはこの機密性と完全性の両方を提供するものだと思います。つまり、盗聴対策と改ざん対策です。

> この場合、
> トップページをhttps://toppage.html(sあり)とし、
> ログインフォームのaction先を、http://check.php(sなし)のように考えていたのですが、

これは何をしたいのかわかりませんが、action先がHTTPSでないということは、平文でパスワードなどが送られます。
なんというか、羊頭狗肉ですね。 (SSLを使っているように見せかけて、本当は使っていない)

> こちらのサイトURLは、トップページがhttpになっており、
> 会員ログインフォームのaction先がhttps:〇〇〇
> となっています。

これも典型的な駄目なケースだと思います。
通信経路上でトップページの改ざんが行われた場合や、フィッシング詐欺が行われている場合、攻撃者のサイトにHTTPSで接続してパスワードを送ることになりますよね。
しかも、ブラウザで見る限りは異常が見えないので、ユーザーは攻撃者のサイトにパスワードを送るまで攻撃者のサイトにパスワード送ることに気づけないでしょう。


というわけで、ログインページからログアウトするまでちゃんとHTTPSを使ったほうがよいと思います。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
安全性を考えてすべてのページで使う方向で検討したいと思います。

詳しく説明していただきありがとうございます。

お礼日時:2013/07/13 09:40

直接の回答はNo1さんの通り。



なお、セキュリティの観点からは、formを表示するページ、action先のページ、両方がhttpsである必要があります。

参考:
http://takagi-hiromitsu.jp/diary/20051130.html
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
片方のみhttpsがついているサイトが多かったのでそれに惑わされていました。
教えていただきました参考ページ、とてもわかりやすいです。
ありがとうございます。

お礼日時:2013/07/13 09:43

> action先がhttpsになっていれば暗号化されてデータは送られるのでしょうか?



その通りです。

ログインフォームが http と https のどちらで表示されようが関係ありません。
送信先(action)が https のときだけ暗号化されます。
受信は送信に使用した接続を使用するので、受信の暗号化有無は送信方法で決まります。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

ログインフォームのあるページがhttpだとhttpsのページへ暗号されずに
POSTされてしまうのではないかと勘違いしていましたがお蔭様で解決できました。

お礼日時:2013/07/13 09:35

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QWEB問い合わせフォームの暗号化

WEB問い合わせフォームの暗号化について調べているのですが、
問い合わせフォームだけSSLにしても、確認メールなどもなんとかしないと意味がないという記事をネットで見かけました。

一般的に、問い合わせフォームの暗号化などをちゃんとしているところは、問い合わせフォームの入力~確認メールを、どのような形で作られているのでしょうか。

よろしくお願いします。

Aベストアンサー

確認メール等にクレジットカード番号などの保護が必要な情報を記入しないという方法もあります。

管理者側へもメールで問い合わせ内容を送らずSSLで暗号化されたWebで見るようにし、お客様とのやりとりもSSLで暗号化されたWeb上だけで完結させれば基本的に問題がありません。

Webと社内システムを連携させたりする場合は、Webサーバがあるネットワークと社内ネットワークをVPNでつないで暗号化通信を行うという事もあります。

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Qapt-get install ****** でinstallしたものをuninstallするには?

御世話になります。
vncserverだけをinstallするつもりが
誤って
apt-get install vncとうってしまいました。
これをuninstallしたいのですが
どのようにすればよろしいでしょうか?

教えて下さい。

Aベストアンサー

# apt-get remove パッケージ名
では、設定ファイルは削除されずに残ります。

完全に削除するときは、
# apt-get --purge remove パッケージ名
です。

Qsyntax error, unexpected '}' というエラーの対処法

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" maxlength="3" />
<input type="sbumit" value=回答" />
</form>
<hr />
<?php
session_start();
if(is_null($_SESSION['answer'])){
mt_stand(microtime()*1000000);
$_SESSION['answer']=mt_rand(1,100);
$_SESSION['game_cnt']=0;
}
if($_POST['answer']!=""){
$_SESSION['game_cnt']++;
if($_session['answer']==$_POST['answer']){
print("おめでとうございます".
$_SESSION['game_cnt']."回で正解しました!");
session_destroy();
}else{
if($_SESSION['answer']>$_POST['answer']){
print("もう少し大きいです。");
}else
print("もう少し小さいです。");
}
}
}
?>
</body>
</html>
それとこの間違えたところをなおしたあとはいつもコンピュータを再起動しないと修正したところが適用されないのですがほかに方法はないですか?基本的な質問ですいません。

PHPを習い始めて三日目になるのですがParse error: syntax error, unexpected '}' in C:\Program Files\Apache Group\Apache2\htdocs\****\****\game.php on line 33
というエラーがでるのですが33行目前後のどこをなおせばいいのでしょうか?
・game.php
<html>
<head>
<title>数当てゲーム</title>
</head>
<body>
<h1 style="background:#cccccc">数当てゲーム</h1>
<form method="POST" action="game.php">
1~100までの数を入力してください
<input type="text" name="answer" size="5" max...続きを読む

Aベストアンサー

print("もう少し大きいです。");
}else
print("もう少し小さいです。");
のelseの後に{がないようですが、大丈夫でしょうか?

QHTMLフォームのSELECTの幅を一定にするためには?

HTMLフォームのSELECTの幅を一定にするためにはどのようにすれば
いいのでしょうか?

CSS等で設定できるとありがたいのですが、やり方がわかりません。

Aベストアンサー

<select style="width: 200px">

Qインストールされているディレクトリを知るコマンドはありませんか?

phpのconfigerをするのに、
phpのインストールされているパスへ移動しなくてはいけませんが、
phpがどこにインストールされているかわかりません。

 rpm -qf php-4.0.6-7

とすると

 エラー: ファイル php-4.0.6-7: そのようなファイルやディレクトリはありません

と表示されてしまうのです。
rpmのサイトを見てオプションを設定して表示された結果から
ディレクトリを移動しても
コンフィギャーできるところに辿り着きませんでした。

どうしたらインストールされているディレクトリを
知ることができるでしょうか?

OSは以下の通りです。
AIX Version 4 もしくは LASER5 Linux release 7.2

今月が納期で生じたバグ対応のため大変困っています。
質問場所が違っていたら申し訳ないですが、
よろしくお願いいたします。

Aベストアンサー

Laser5に限っての話ですが、標準のインストールでphpはインストールされるはずですが。

# rpm -qa | grep -i php

でphpのパッケージ名は表示されませんか?

findを実行した結果、

php(コマンド)
libphp4.so(ライブラリ)
php.ini(設定ファイル)

等も見つからないのでしょうか?
もしそうならphpはパッケージもソースでもインストールされていない可能性があります。

Qforeachで回った数を表示したい

単純な質問ですみません。
====
//getTestlistは別ファイルで定義済み。
<?
$testlist=getTestlist();
foreach($testlist as $test){
?>


<? } ?>
====
例えば↑こんなふうにforeachで$testlistが存在するだけ回したとします。
そのときに何回まわったか?($testが何件あったか?)だけを表示したいのですが、そんなことってできますか?
表示したい位置は<? } ?>の外側にと考えています。
あさってな質問でしたらすみません。
phpVer 4.3

よろしくお願いいたします。

Aベストアンサー

<?
$testlist=getTestlist();
$n=0;
foreach($testlist as $test){
$n++;
?>
<?}?>

<?=$n?>回
とかでよいかと思います。

途中でbreakなどが無ければ
<? echo count($testlist) ?>でも良いかも知れません。

Qエクセルでの指定文字 カウントについて

エクセルで並んだデータでの指定した名前だけの個数をカウントするにはどうすればいいのでしょうか?

山田 高橋 佐藤
高橋 梅田 赤田
 西 山田 梅田
佐藤 山田 梅田

名前が並んだデータで「高橋」という名前が何個あるのかをカウントしたいのですがどうすればいいのでしょうか?

Aベストアンサー

 データは入力されているセルの範囲を「A1:C4」とすれば、

=COUNTIF(A1:C4,"高橋")

Qhtml で 変数を定義できますか?

html(できればjava不使用)で変数に文字列をいれてつかう、またはそれに近いことはできないでしょうか?

例**************************
$color1="#000000"

<tr bgcolor=$color1>内容1<tr>
<tr bgcolor=$color1>内容2<tr>
****************************
みたいな感じです

Aベストアンサー

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<meta name="author" content="ORUKA1951">
<meta http-equiv="Content-Style-Type" content="text/css">
<link rev="made" href="mailto:orika1951@hoge.com" title="send a mail" >
<link rel="START" href="../index.html">
<style type="text/css">
<!--
.parson1:before{content:"田中";}
p.age1:after{content:"36歳";}
-->
</style>
</head>
<body>
<h1>サンプル</h1>
<p class="parson1">は男の子</p>
<p class="parson1 age1">の年齢は</p>
<p>私の彼氏は<span class="parson1">君だよ</p>
</body>
</html>

調べりゃ分かることは???だけど。

CSS2で無理やり作れば・・簡単だけど・・・
生成内容、自動番号振り、リスト ( http://www.swlab.it.okayama-u.ac.jp/man/rec-css2/generate.html )
 本来はXSLTで作るほうがよいかと・・・
 <th><xsl:value-of select="parson" />の歌</th>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=Shift_JIS">
<title>サンプル</title>
<met...続きを読む

QEclipseのアンインストールの仕方

 JAVA初心者です、宜しくお願いします。

 Win 7です。
 現在、Eclipse3.1を使っていますが、今度Eclipse3.4にVersionUpしようと考えています。
 Eclipse3.1はAll-In-Oneというパッッケージ?からインストールしました。
 Eclipse3.1をアンインストールしようとしても、「コントロールパネル>プログラム>プログラムのアンインストール」を見ても、Eclipse3.1は表示されていません。

 「コンピューター>C>ProgramFiles>All-In-One-Eclipse」というフォルダーはありますが、
そのフォルダーの中にも、アンインストーラー?らしきものも見当たりません。
 どのようにしてアンインストールしたらいいのでしょうか。
 「全てのプログラム」にも表示されていません。
 (インストール時にそのような設定にしたような気がします。)

 「All-In-One-Eclipse」というフォルダーを削除するとPCに問題が起こりそうな気がします。
 このまま、Eclipse3.4をインストールしても問題が起こりそうな気もします。
 このような場合には、どのようにしたらよいのでしょうか。

 JAVA初心者です、宜しくお願いします。

 Win 7です。
 現在、Eclipse3.1を使っていますが、今度Eclipse3.4にVersionUpしようと考えています。
 Eclipse3.1はAll-In-Oneというパッッケージ?からインストールしました。
 Eclipse3.1をアンインストールしようとしても、「コントロールパネル>プログラム>プログラムのアンインストール」を見ても、Eclipse3.1は表示されていません。

 「コンピューター>C>ProgramFiles>All-In-One-Eclipse」というフォルダーはありますが、
そのフォルダーの中にも、...続きを読む

Aベストアンサー

Eclipseにはインストールもアンインストールもありません。
zipを解凍すれば直ぐに使えます。消すときはフォルダごと消すだけです。

様々なバージョンを同時に使うことも可能ですし、
設定を変えた複数のEclipse の同時利用も可能です。
フォルダが異なれば大丈夫なんです。

私は1台のマシンに Indigo、Ganymede と Juno を入れてます。


人気Q&Aランキング