2009-04-27 7 views
0

私はウェブフォームを保護する方法を学ぼうとしています。簡単な例、連絡フォーム、名前、電話番号、メールアドレスを入力してください。私はこれが見つかりました:ウェブフォームを配信し、電子メールで回答を安全に送信するにはどうすればよいですか?

Secure Email Techniques

をしかし、それは行くための正しい方法であるかどうかはわかりません。それは問題であれば共有ホスティングではなく、私はすべてのものに完全にアクセスできます。現時点ではIIS 6とWindows 2000に縛られているので、おそらくasp.net 2.0を使用する必要がありますが、必要に応じて他の言語を使用できます(IISで実行可能)。

フォームに記入し、適切な次のステップに電子メールを送ってください(それはわかりません)

また、フォームのポートにポート443を使用しますか?

編集:ちょうど私は明確です。ごめんなさい。私はプロセス全体を安全にする必要があります。最初のフォームを安全に取得するだけではありません。一度入力すると、フォームからデータを安全に取得する必要があります。

編集:私は十分に明確ではありません。私が443とSSL経由で取得したユーザーからのデータを取得したら、そのデータをインターネット経由で電子メールで送信します。それを安全に行うことは可能ですか?または、SSLを使ってデータを取得し、その情報(秘書など)を閲覧するユーザーに、同じSSLソケットをビューアプリケーションだけで使用するようにしてください。

何か助けていただければ幸いです。ありがとうございました。

+0

ユーザーがhttpsを使用している限り、サーバーとの間のすべてのデータは暗号化されます。 –

答えて

2

SSLをページに設定している場合は、仕事の実際のPITA部分のほとんどが完了しています。ユーザーはポート443に接続することができ、入力されたすべてのデータは安全です。

はしかし、どのようなほとんどの人はに答えていないと、その多くの輸送が安全を保証できません電子メールを介してデータ伝送である - [私はこのリファレンスがどのように信頼できる知っているが、決して読んでない価値がありません-the-less:http://ask-leo.com/just_how_secure_is_email_anyway.html]ですので、何らかの形式の暗号化を使用してデータを暗号化する必要があります。おそらく公開鍵/秘密鍵の暗号化 - おそらくRSAなど。公開鍵を使用してデータを暗号化し、電子メールに添付して郵送します。電子メール受信者は、秘密鍵を使用してデータを復号化します。

フォームのmailto機能を使用している場合は、コーディングが必要になる可能性があるため、手を汚す時間があります。私が知っているところでは[私が間違っていると私を訂正してください]、IISは電子メール経由でデータを暗号化する能力を持っていません - 主に受信電子メールプログラムがデータを復号化する方法がない暗号化アルゴリズム、鍵、アタッチメントメソッドなどを指定する必要があることを意味します。

です。これを処理するには多数のライブラリがあります。あなたがこれを自分でプログラミングしているのかどうか、またプログラミング言語を暗示しているのかどうかは言及していませんが、マイクロソフトの技術を使用しているように見えるので、参考にしてマイクロソフトのサイトを紹介します:

http://msdn.microsoft.com/en-us/library/5e9ft273.aspx

うまくいけば、正しい方向に向けるはずです。私の考えでは、サイトに入力したデータを解析し、公開鍵を使用して暗号化して電子メールに添付する必要があると考えています。

電子メールを読んでいる人は誰でも、秘密鍵を使ってデータを復号化するユーティリティが必要になります。私はあなたが自動的に暗号化された添付ファイルを持つ着信電子メールを受信し、毎回手動でこれを行う人を保存するためにディスクに自動的に解読するユーティリティを望むと思います。あるいは、添付ファイルをドラッグして表示するドラッグ/ドロップユーティリティを使用することもできます。ちょうどいくつかの考え。

+0

私はSSLポート経由での視聴がより良いと思うようになってから送信しています。 – johnny

+0

私はおそらくあなたに同意する傾向があるでしょう、それははるかに少ない仕事です...あなたは管理上の使用のために再調整された同じページを効果的に使うことができます。 – BenAlabaster

1

SSL証明書を購入して、その証明書を使用するようにIISを構成し、SSLの上でのみページを提供する必要があります。これは、そのサイトへのすべての接続がユーザーのブラウザからサーバーに安全であることを意味します。

0

SSL証明書が有効です。必ずしも1つ購入する必要はありません。なぜなら、「自己署名」することができるからです。使用した証明書が有効でないことを示すウィンドウがポップアップ表示されます。ただし、証明書が有効ではないにもかかわらず、署名された証明書と同じ暗号化が提供されます。あなたは、クライアントのWebブラウザが自動的にポート443

0

でWebサーバに接続しようとしますhttpsプロトコルを使用している場合

あなたはあなたのサイトのSSL証明書を必要とします。あなたのデータが安全であることを確認する限り、フォームアクションがhttps://

0

であることを確認してください。フォームを保護することは常に危険な仕事ですが、まずCAPTCHAコンポーネントを追加する必要がありますこの方法では、脆弱性スキャナーやボットがコードやサーバーで脆弱性を見つけようとしてフォームを使用できませんでした。この方法では、受信者のメールフォルダにフォームから何千もの電子メールが送られることはありません。

また、何かを行う前に入力データのサニタイズを試みると、SQLインジェクション、XSSなどが防止されます。 ASP.NETのようないくつかの言語は、デフォルトの設定だけでこの作業を行いますが、コードを記述する必要がある場合は、それほど難しい作業ではありません。この2つの方法では、より多くのテクニックがあり、95%の仕事が完了します。

その他のご提案が必要な場合はお知らせください。

関連する問題