• 締切済み

SSLに対応した送信フォームをつくるには?

このたび社内運営サイトでSSLを導入しようと検討しています。 送信された情報をメールソフトで受信したいのですが、この時きちっとSSLが効いた状態で受信させたいのが希望です。 PGPに対応したセキュアな送信フォームの制作が必要なようですが、プログラム言語は何が一番セキュアレベルが高く制作出来るでしょうか?(例えばPHPが良いとか)。 そしてその時、その言語で「スクリプト混入問題」を解消できるように(完全解消が無理ならばどこへ出してもおかしくないレベルに)プログラミングしたいのですが、良い教科書はないでしょうか? 現在したいと思っているのは、データベースと連動するまではなく、送信フォームから送信された情報を社内のメールソフト(Eudra)で受信し、あとはアナログで情報を社内へまわすといった形です。カード決済となるとサービスを利用していくのですが、今はそれ以前の段階として、とにかくお客様から送信された情報が届くまでの経路で「SSLがちゃんと効いています」「セキュアな送信フォームになっています」となるようにしたいのです。 どなたかご教授をぜひにお願いできれば嬉しいです。 それでは宜しくお願い致します。

みんなの回答

  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.5

> 実際のところは不要なのでしょうか? どんなにスクリプトが混入したところで、第三者(貴方と入力した当人以外)にそれを見せなければ、あまり関係ないような気がしたものですから。 詳しいことは知らないので、あまり無責任なことを言うのはやめておきます。 実際、ECサイトでも対策は必要と書かれたサイトもあったので(どうやってやるかは知りませんけど)。 PHPだとhtmlspecialcharsという関数があるので、これで基本的な攻撃は防げると思います。 あとは本でも読みながら危険そうな文字・文字列を排斥していけばいいでしょう。 突き詰めていけば、カード決済なら入力されるデータはある程度定型のものでしょうから、最終的には「これ以外駄目」というような形になると思います(たとえば電話番号なら数字以外は非許可にするとか)。 このあたりの処理は単なる文字列処理なので、どの言語が安全とかいうのは無いですね。 安全なものができるかどうかは、プログラマの腕次第です。 > PGPでサーバ保存、SCPでDLという方法と受け取って良いのでしょうか 何か前の回答ではSCPびいきになってしまいましたね。 確かにメールを介した場合のほうがWebサーバにそのまま保存するより盗聴される可能性は高いですが、メール自体は暗号化されている以上、盗聴されたところで読めないので安全なはずです。 それにメールサーバーよりもWebサーバーの方が人の目につきやすいですし、多機能になっているせいでセキュリティホールもできやすい傾向にはあります。 このあたりはレンタル業者の責任ですし、Webサーバへの侵入となると暗号化やXSS以前の問題になってしまいますけど。 色々書きましたが、個人的にはどちらでもいいと思います。 一応のセキュリティはPGPで確保できていますし、PGPの最大の強みは盗み見られても正当な受取人以外は読めない、というところですから。 ECに使うのであれば、少し長めの鍵長にしておいたほうがいいでしょうけど。 SSHによる暗号化はせいぜい駄目押し程度ですね。 二重に暗号化しているだけですし、PGPだけでも普通はまず解読できないです。

acidend
質問者

お礼

hofuhofu様、毎度有難うございます。助かっています。 いまいち補足とお礼の選別の理解が出来ていませんが、お礼をお伝えしたいので今回はこちらへ記載しました。 そうですね、プログラミングの腕次第で安全なものができるかどうかは分かれてきますでしょうね。 ただ、PHPは他のことも考えてもPHPは良いなと感じています。基本的な攻撃を防げる関数ああるとこころは良いですね。 結果までの方法についてのアドバイスも了解いたしました。有難いです。 あとはスクリプト混入問題への対策をどの程度すれば、専門家がおこなうべきレベルくらいのものが出来るか?というのが未だ判断出来ない状況です。 別にメインの仕事があるので毎日少しづつでも調べ続けないといけないです。 そしてもうひとつはスクリプト混入問題を考慮し、PGP化して渡す最適なプログラミングと、その教本探しです。 まだまだ道が遠い気が・・・(笑)。

全文を見る
すると、全ての回答が全文表示されます。
  • hofuhofu
  • ベストアンサー率70% (336/476)
回答No.4

スクリプト混入問題についてはほとんど知らないですが、メール送信に関係あるのですか? 掲示板のように入力された内容をそのまま不特定多数に公開するのであれば、クロスサイドスクリプティングなどが起こりうるというのは理解できますが、メール送信フォームのように貴方か、送信した本人ぐらいしか見ないようなものであれば、それほど気にしなくてもいいような気がしますが。 PHPを使ったスクリプトがあったので載せておきます。 http://www.hotwired.co.jp/webmonkey/2000/20/index3a_page6.html こっちはGnuPG+Eudora(もう知ってますかね?) http://www.fkimura.com/pc-pgp0.html > 本文も含めた全体が暗号化されると 本文しか暗号されません。 メールのヘッダは途中のメールを経由するサーバーが読めないといけないですし、書き込めないといけないので暗号化できません。 送信自体はWebサーバーからになっているので、ヘッダに見られて困るようなデータも無いはずですけど(メールソフトを使って送られた場合は当人のメールアドレスやIPアドレスが載せられる)。 また、そのメールを読むときにPOP3を使った場合は、パスワードも漏れる可能性があります。 たとえ、そのパスワードを使ってメールを盗み見たとしても、暗号化されているので普通は読めないですが、セキュリティに気を使うのであればAPOPにしたほうがいいと思います。 > SSL化したといっても、サーバに個人情報を置くこと 受信した内容はWebサーバーがさっさと復号してしまっているので、そのまま保存すると平文のままで記録されてしまいます。 > 暗号化は途切れないといっている 上記のように、厳密にいうとWebサーバー上で一旦途切れます。 そのまますぐPGPで再度暗号化してしまえば、送受信は安全ですが、CGIが変な情報をサーバーに残さないように気をつけてくださいね。 ちなみにPGP=メールとすぐに繋げてしまいがちですが、PGPは汎用の暗号化ツールですのでファイルの暗号などもできます。 PGPで暗号化して、サーバー上に置いておき、SCPやSFTPなどでダウンロードするというのもいいと思います。 どうせ私有鍵(秘密鍵)が保存されたパソコンでしか読めないですし、メールで送ったところで今度はメールサーバーに個人情報がしばらく保存されることになるので。 Webサーバーとメールサーバー、どちらが攻撃を受けやすか、という問題はありますが。 メールソフトの自動受信の機能を使えば、データの取り込みは楽ですけどね。 > SCPは良いのですか? SSH(SCPやSFTP)にはRSA認証というのがあるので、下手なパスワードを使うよりよっぽど安全です(レンタルサーバーがそういう設定になっていればの話ですが)。 パスワードの代わりに公開鍵暗号方式の公開鍵を使う方法です。 「公開されている鍵」なので誰かがそれを使って侵入を試みることは可能ですが、最終的に認証を終えるには公開鍵と対になる私有鍵(秘密鍵)が必要になるので、侵入できません。 もちろんデータ自体の送受信も暗号化されています。

acidend
質問者

お礼

締め切ります。有難うございました。

acidend
質問者

補足

hofuhofu様、詳細に有難うございます。 「スクリプト混入問題についてはほとんど知らないですが、メール送信に関係あるのか?」ということですが、自社サイトの商品注文フォームや問い合わせフォームにて、入力するお客様に対し、XSS等に代表されるスクリプト混入問題が起きる可能性をなるべく払拭したいと考えております。メール送信時でなくフォーム入力時にスクリプト混入問題が発生すると聞いています。 私も最初はここまで要るのか?と思っていたのですが、以前このサイトで専門家の方から「SSL導入して保護をアピールするのならなおのこと必要」とご指摘がありまして、調べていっても必要性が感じられてきた経緯です。 それとも何か間違っているのでしょうか? またこれに付随しますが「送信した本人ぐらいしか見ないようなもの」ということですが、利用する全てのお客様に対して上記問題の可能性があるのならば、ここまで対応したものにしないといけないのだろうと思っていました。 悪意ある人が当該サイトを選び取ることは稀だとは思いますが、個人情報の保護に努めていると訴え、SSLも導入していますとアピールしていながらこの辺りの対策を講じていないことが、業界の常識でみて道にはずれないものかと思っています。 実際のところは不要なのでしょうか? PHPのスクリプトは参考になります。有難うございます。 GnuPG+Eudoraは既におこなっておりますが、有難いことです。 要はhofuhofu様のアドバイスとしては最良なのは、PGPでサーバ保存、SCPでDLという方法と受け取って良いのでしょうか。 利用しているレンタルサーバではSSHのマルチアクセスが可能になっているようですが。

全文を見る
すると、全ての回答が全文表示されます。
  • furyfox
  • ベストアンサー率56% (58/103)
回答No.3

PGP技術とeudoraについては良く知らないのですが メーラー(eudora)の方が対応していれば暗号化できるのかもしれません。 「暗号化は途切れない」といっているレンタルサーバー業者に 本文も暗号化されるのか確認してみると良いでしょう。 レンタルサーバーとなると、Javaを容認するところは少ないですね。 というのも不特定多数の人にJavaの実行権限を容認するとサーバーのセキュア管理が難しいからです。 クラスが膨大なためどこにセキュリティホールができるか私も分かりません。 小規模なら特にJavaにこだわる必要もないかと思います。 ただ、機密情報をやりとりするならサーバーは自前で構築することをお勧めします。 レンタルサーバーであれば万が一漏洩したときの保証等の確認が必要です。

acidend
質問者

お礼

締め切ります。有難うございました。

acidend
質問者

補足

furyfox様、有難うございます。 はい、EudoraでPGPが利用できることは確認しております。PGPはとても強固であると聞いています。ただ、当然本文も含めた全体が暗号化されると確認していたつもりですが、再確認の意味でも「本文も暗号化されるのか」をチェックしておこうと思います。有難うございます。 送信フォームのセキュリティホール(スクリプト混入問題)にもかなり気を使いたいと思っているので、Javaは今回は見送ろうと思います。でもお蔭様で視野が広がりました。 最初の質問に戻りますが、この問題を解消(または概ねOK)となるような詳細なスクリプティング情報が手に入りませんでしょうか。当然それを理解し習得する費用は準備するつもりなのですが。ネットの情報では、自分が知る限りざっとの説明があるサイトしか知らず、実際に作りこめるような情報が手に入りませんし、例えあっても信頼できるかという問題も残りますし。 本当にそうですよね、自前でサーバを構築出来れば一番良いことはわかってはいるのですが、費用・人員コスト・技術的な面から現段階では難しいです。 レンタルサーバ会社に対し、万一漏洩した時の保証の確認をすることは良いご指摘でした。大丈夫なものと決めてかからず早速に確認しておこうと思います。

全文を見る
すると、全ての回答が全文表示されます。
  • furyfox
  • ベストアンサー率56% (58/103)
回答No.2

メールの使用はセキュアではありません。 APOPを使用してもパスワードを暗号化するだけで 本文は平文です。メールソフトを使うのではなく 直にサーバーにアクセスするかhttpsを使ってください。 メールのやりとりは漏洩するおそれがあります。 あと「スクリプト混入問題」についてですが CGIはサーバー側で処理した結果をクライアントに送信します。 単に意図しない結果を排除するだけで セキュアかどうかはプログラム言語には依存しません。 Javaだろうがperlだろうが、PHPだろうが設計次第です。 個人的にクラスライブラリが膨大なJavaをお勧めします。 あと自分で認証局を構築もできますが信用性をたかめるなら 認証局にセキュリティ証明書を発行してもらう必要があります。 年間いくらかかかります。

acidend
質問者

お礼

締め切ります。有難うございました。

acidend
質問者

補足

furyfox様、誠に有難うございます。 Javaがお勧めということですか! レンタルサーバを利用している環境なのですが、そうなるとJavaを使えるところはそうないのでしょうね。一応チェックしようと思いますが。 尚、レンタルサーバを利用していてそこがSSLに対応しているので、SSLの設定等はそれを利用します。年間費用も承知しています。 また、スクリプト混入問題についてもそれが暗号化に関係しないことも承知しています。「暗号化」とこの「スクリプト混入問題」を最低限にし、よりトラブルがなく安心感がある送信フォーム状態をつくり出したいのが今回の希望です。 また、PGP型の送信フォームプログラミングをすれば、送信からサーバまではSSLで、サーバからメールソフトまではPGP(無料なのでGnuPG)でおこなえば方式は違っても暗号化は途切れないといっているレンタルサーバ業者をいくつか知っていますが本当は違うのでしょうか? いくらSSL化したといっても、サーバに個人情報を置くことほど怖いことはないと思っており、一番抵抗があったのですが・・・。

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

社内運営サイトとはWebサーバが社内に設置されていることでしょうか?それともホスティングサーヒスですか? いずれにせよSSLのセットアップをWebサーバ側で行う必要があります。一般的にはホスティングプロバイダがオプションにより用意しているケースがほとんどです。 またベリサインについては認証局とのやりとりが必要です。詳しくは下記URLを参考にしてくたざい。 http://www.atmarkit.co.jp/fsecurity/special/01ssl/ssl01.html 私も実際に業務でカード決済のサイトを構築したことはありませんのでつっこんだことはわかりかねますが、プログラム言語としては別にPerlを用いたCGIでもよいと思います。もっとも最近ではホスティングプロバイダの方でこういったEC向けのパッケージを用意していることが多いと言えます。 クロスサイドスクリプティングなどのセキュリティに関しては数冊でていたと思いますので実際に店頭で見比べながら確かめられるのが一番かと思います。 どこまでセキュリティを求めるかにもよりますが、メールで注文主が入力した内容をそのまま転送してしまうとメールでの通信内容は暗号化されていませんのでSSLを用いる必要性がみせかけのものになってしまうのではないかと思います。ですので注文があったことを受注用メールアドレスにメッセージを転送し、注文主の入力したデータをサーバ上からSCPなどで抜き取るのが適切ではないかと思います。

参考URL:
http://www.atmarkit.co.jp/flinux/rensai/apache12/apache12a.html
acidend
質問者

お礼

締め切ります。有難うございました。

acidend
質問者

補足

jakarta様、誠に有難うございます。 情報が足らず申し訳ないです。 サーバはレンタルサーバで、SSLを導入することについてはそこでやってもらいますのでSSL導入部分については大丈夫です。 おこないたいことは、うちでつくる送信フォームページからメールソフトで受信するまでをなるべく安全度が高く、スクリプト混入問題がおこらない、またはおこりにくい状態にするということです。 それにはSSLが必要で、送信フォームにはPGPとスクリプト混入問題を考慮したプログラミングが必要と認識しております。尚、メールソフトで受信したものを転送することはSSLが効かなくなるのでもとよりするつもりはなく、その後はその情報をプリントアウトして後方部隊へ引きぐ流れで考えていました。 SCPは良いのですか?もし良いものなら確かにFTP的にSCPを利用してダウンロードするのも良いかも知れないとも感じます。 が、どうもSSLを導入すると言えども、送信フォームから送信された情報をサーバに残すのには一番抵抗がありまして、まずはなるべく使わずにと考えていたのです。 この一連の考え方より良い方法があるのなら(費用・手間がひどくなると難しくなりますが)、今の考えにこだわるつもりはないのですが・・・。どんな感じでしょうか?

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

関連するQ&A

  • SSLとPGPについて

    レンタルサーバーを利用し運用しています。 自分のホームページから顧客がフォームメールを使い、住所や氏名を入力して問い合わせをする(クレジットカードなどお金に関わるモノはない)形をとっていますが、セキュリティについて疑問がありましたので、ご相談します。 上記のようなフォームメール送信の場合、セキュリティ対策としては、 顧客のパソコン→(SSL)→レンタルサーバ→(PGP)→私のパソコン というスタイルでいいんでしょうか。 顧客からの情報がレンタルサーバーで止まるようにすれば、SSLの部分だけで十分なのでしょうか。また、その操作は可能なのでしょうか。 一般的なメールソフト(Outlook Expressなど)でのメール送信は行わないので、PGPはいらないのではとも思います。 つまり、べりサインなどでCA取得し設定すれば、SSLのみでも対応できるのではと考えています。 初心者なもので、質問内容も的外れかも知れませんが、よろしくお願いします。

  • 問い合わせフォームをSSL対応させたい

    HTMLに関しては素人以上の知識がありますが、プログラム言語やセキュリティに関しては全くの素人です。 現在サイトからの問い合わせフォームに入力された個人情報を含む情報がCGIによりメールで届くようになっているのですが、 これをきちんとSSL対応させたいと思い、認証局からの証明書は取得しました。レンタルサーバーを利用していますが、SSLには対応しています。 さてここからなのですが、このまま入力フォームのあるページに HTTPSからアクセスしてみたところで、入力された情報がメールで送信されるのでは サーバ→メーラー間の情報送信は暗号化されないのですよね。 いろいろ調べた結果、phpMyAdminを利用してデータベースを構築し、 フォームに入力されたデータをサーバー上のデータベースに格納、 WEBブラウザで管理画面に入りデータを閲覧する、という方法で これを実現するのが正解なのか、というのが自分の中での結論になりつつあります。 しかしそれを自分の力で解決するにはあまりに難しく非現実的そうです。 そこでお伺いしたいのですが、私のこの結論は考えすぎでしょうか? MacOSXでEntourageを使用しており、SSLのオン/オフが切り替えられるようなのですが、 これをオンにするだけで問題は解決されるのでしょうか。 (実際オンにしてもタイムアウトでメールは受信できなかったのですが) コストがかけられないのでなんとか自分の手で解決したいのですが、 調べていくうちに混乱してしまい途方に暮れています。 他にもっと簡単な方法があるとか、まずは何から勉強するのが良いのかなど、 どんなことでもいいのでアドバイスをいただければ幸いです。 サーバーシステムはLinuxでPHPのバージョンは4.4.1です。 よろしくお願いいたします。

  • PGPを組み込めるメール送信フォーム

    Perlにてメール送信フォームをPGPを使って作りたいのですが技術的に可能ですか? また、作ったことのある方がいましたら作り方を教えてください。

    • ベストアンサー
    • CGI
  • SSLでのフォームの入力について

    現在、ホームページで非SSL通信でのフォームの入力をしています。そのフォームで入力した内容はメールで受信する形です。 これをSSLに対応させてフォームの入力をさせる予定です。 このような場合もメール受信して到着するまでは暗号化されているものなのでしょか? すみません、シロートな質問で。 ちなみに ホームページはホスティングを利用して、SSLの手続きは、ホスティングの会社が登録代行と証明書の発行まで済んでおります。

  • SSLはページとメールフォームCGIどちらもSSL対応に?

    SSLを導入したいと考えております。 ・注文ページとなるHTMLファイル(ページ) ・メールフォームCGI(送信データがサーバに蓄積されるタイプ) ページもCGIもどちらもSSL領域に置く必要があるのでしょうか? それとも、 ページだけSSL領域におけばいい、 CGIだけSSL領域におけばいい、 ということなのでしょうか? 教えていただけると幸いです。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • SSL対応のメールフォームを作成するのに必要な知識

    SSLを使ったメールフォームを作成したいと考えていますが、今までSSLは見て見ぬフリしてきたもので、よく分かりません。 まず、メールフォームを設置するサーバはSSL対応のサーバです。そこに、住所・氏名等を入力してもらうメールフォームを置きたいと考えています。私はまず何をすればいいんでしょうか? セキュリティ面はもちろん、ユーザーの安心感のためにもベリサインを使いたいんですが、値段がイマイチ分からないので、あまりに高額な場合はOpenSSLにしようと思っています。 メールフォームは、メール送信と同時に、サーバ上のCSVファイルにログを書き込む形にしたいと考えています。 以上の事を踏まえて、どなたか詳しい方、アホにも分かるように教えていただけないでしょうか。SSLを使う場合のメールフォームも、お勧めのプログラムがあればお願いします。

  • SSL対応のお問い合わせフォームで問い合わせを受ける場合、その問い合わ

    SSL対応のお問い合わせフォームで問い合わせを受ける場合、その問い合わせ内容をメールで受信する場合、内容は暗号化されるのですか? 初歩的な質問ですみません。 会社サイトを運営していて、お客様のお問い合わせ内容と個人情報を通常のメーラーで受信する方法にするとSSLを使っている意味がなくなってしまうのでしょうか?

  • メールフォームを作成しましたがうまく送信できません。

    こんにちは。 メールフォームを作ったのですが、上手く送信できません。 「このフォームは電子メールを使って送信されています。このフォームを送信すると、電子メールアドレスが受信者に公開され、フォームのデータが暗号化されずに送信されます。このフォームは続行することもできますが、取り消す事もできます。」と出てきます。 メッセージは出てもかまわないと思いますが、なんとか送信できるようにする方法を教えてください。 もしもフォームだけ作成し公開できるサイトなどもありましたら教えてください。 どうぞよろしくお願いします。 使ったソフト:「ホームページNinja2003」(他のソフトでも同様な結果)(ちなみに「メールフォーム機能だけでなくフォーム機能も使ってみました。)

  • メールフォームでのメール送信

    メールフォームによる送信について教えてください。 ホームページを閲覧したとき、そのホームページに設置されているメールフォームを利用してメールを送信することがよくあります。 あとになって、どこにどんなメールを送信したかを忘れてしまうことがあるのですが、自分のパソコンでそれを調べることはできないでしょうか。 また、送信先ではこちらが書き込まなければメールアドレスの情報は受信されないのでしょうか。

  • SSLについて

    会社のホームページ制作担当をしていますが、昨今個人情報保護法などのからみから、CGIフォームでのデータの送信にSSLでの暗号化をして欲しいという意見がでました。 現在使用しているホスティングサーバーはSSLに対応していないらしく、サーバーの乗換えを考えています。 いろいろ調べているのですが、共有SSLという安い方式と、5~6万円くらい金額がかかる、日本ベリサインなどのSSLサーバ証明書を取得する場合とがあるのですが、どう違うのでしょうか。 できれば安く上げたいのですが共有SSLだと何か問題が発生したりするのでしょうか。