• ベストアンサー

SSLのページをつくるには?

PHP勉強中なのですが、友人に頼まれPHPで申し込みフォームのようなものを作って欲しいといわれたのですが、住所などを扱うためSSLのほうがいいのだろうと思っています。 が、SSLについてよくわからないので質問させてください。 調べたところサーバー側とSSLの契約をすればSSL使用可のようなのですが、そこで使うプログラムは何か特別な作り方をするのでしょうか? 通常通りのPHPプログラムで問題ないのでしょうか? 内容的にはフォームに入力したものをメールで受け取る。というふうに考えています。(他にも方法があれば教えてください。) よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • technova
  • ベストアンサー率66% (10/15)
回答No.3

<SSLの目的とするところ> SSLとは通信プロトコルの一種で、ウェブサーバ側にVeriSignなどの事業者から購入したサーバ証明書を設定すると、ユーザとウェブサーバ間でSSL通信が可能となります。ユーザにとってのメリットは、次のようなものです。 1.ユーザが申し込みフォームのページにアクセスした際、サーバ側に設定されたサーバ証明書を確認できます。サーバ証明書を確認できるというのは、サーバ証明書にはサーバのドメイン名やウェブサイトの運営者の情報が入っているため、目的のウェブサイトであることを確認できます。これで、ユーザはアクセスしたサイトがフィッシングサイトのように成りすまされたサイトかどうか判断することが可能になります。 2.ユーザが申し込みフォームのページにアクセスした際、そのページの内容やユーザの入力送信情報が全て暗号化されます。これで、ユーザは安心して入力情報を送信することが可能になります。 ※ただしユーザが1の確認をした上で目的のサイトにアクセスしている場合に限ります。もしユーザが成りすましサイトにアクセスしていたら、入力情報の送信データが暗号化されていたとしても個人情報などはそのまま成りすましサイト運営者に盗まれてしまいます。 というようにユーザを保護するために導入するのがSSLです。よくウェブサイト運営者側を守るためにSSLを導入するという発想をしがちですが、実際にSSLで守られるのはユーザ側です。飲食店で食中毒を発生させないよう衛生に注意を払うのと同じ考え方です。サーバ証明書は、発行している事業者によっていろいろな種類がありますから、ユーザを守るという観点でどのサーバ証明書にするか決めましょう。 <SSLの適用範囲> ・ユーザとサーバ間が保護されます。 ・PHPより手前のセッションレイヤのレベルで保護されます。つまり必ずSSLの処理がされた後にPHPの処理がされます。ただし、SSLとPHPは全く別の処理ですので、お互いに意識する必要はありません(依存関係はありません)。 <メールはSSL範疇外> 「内容的にはフォームに入力したものをメールで受け取る」とありますが、メールはSSLの範疇外ですので保護されません。PHPからインターネット経由でメールを受信する場合は、そのメールは保護されない状態でインターネットを流れるわけですから、ユーザの個人情報が漏洩する可能性があります。 ※インターネットを経由せずLAN内に閉じてメール受信する場合などは安全とは言い切れないものの、第三者に情報漏えいすることはないと思われます。 <PHPで個人情報を受け付けた後の対策> ・メールをS/MIMEというメッセージフォーマットで暗号化する方法がありますが、そういうアプリケーションを開発する必要があります(かなり大変だと思います)。 ・PHPで個人情報を暗号化してメール送信する方法がありますが、PHPに詳しくないので具体的な方法はわかりません。ただし受信する側で暗号化データを復号するためのツールを別途用意する必要があります。 ・他に容易な方法があればよいのですが、思いつきません。 というわけで中途半端な解説になってしまい申し訳ありません。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.2

>一般的にSSLのページでは、管理者はどのように情報を受け取るのでしょうか? SSLはあくまでも通信を暗号化するものです。 受け取るデータは平分時と何ら変わりはありません。 その辺を意識する必要はありません。 >具体的にはどのような手法があるのでしょうか? 全開の解答で示した通り、サーバーローカルでメールを読むというのも一つの手です。 他にも、送られてきた内容をDBに取り込み、それをSSL通信化のブラウザで確認するというのも一つの手です。 方法は考えれば無限にありますよ。

すると、全ての回答が全文表示されます。
  • kusukusu
  • ベストアンサー率38% (141/363)
回答No.1

SSLとPHPは全く無関係です。 よって、コーディングのさい、SSLを意識する事はありません。 *注意 あえて言えば、例えば https://www.sample.com/form.phpで入力してもらうとします。 しかしながら、http://www.sample.com/form.phpでも普通に送信出来てしまいます。 (違いはhttpとhttps) ですから、PHP側で、その辺りを制御し、強制的にhttps://www.sample.com/form.phpで送信してもらうようにしてもらうかどうかです。 > 内容的にはフォームに入力したものをメールで受け取る。 メールを平分で飛ばせば、いくらユーザー→サーバー間が暗号化されていても、その時にdumpされてしまう恐れがあります。 (そのメールをサーバーローカルで読むのなら問題ありませんが) しかしながらユーザーにはそれは分かりません。 もしSSLを用いる理由が、ユーザーを安心させたいという事であれば、別にメールでもいいかもしれませんが、もし本当に個人情報うんぬんと言われるのなら、何か対策をしなければなりません。 しかしこのような事を言ってしまえば、そもそもSSLをカマス意味があるのかどうか…と言う問題になってしまいますけどね(^^; その辺りは、sana0930さんの考え方次第だと思いますよ。

sana0930
質問者

補足

回答ありがとうございます。 本当に個人情報うんぬんと言われるのなら、何か対策をしなければなりません。とありますが、具体的にはどのような手法があるのでしょうか? 一般的にSSLのページでは、管理者はどのように情報を受け取るのでしょうか?

すると、全ての回答が全文表示されます。

関連するQ&A