• ベストアンサー

PHP内 メールアドレス 暗号化 必要性あり?スパム対策

こんにちは、 PHPファイル内に記述しているメールアドレスは、HTMLファイルに記述しているメールアドレスのようにメールアドレスを自動回収するクラウラーに回収されてしまうのでしょうか? もしそうであれば、PHPファイル内で下記のように変数として使用するメールアドレスを暗号化したいのですが、 >コード $mail = "example@example.com" 「example@example.com」を暗号化したいです。 >end コード $mailは、「mail」関数や「send_mail」関数等に格納してメール送信に使用しするので、今回の場合、メールアドレス(example@example.com)がブラウザーに出力される必要はありません。 PHPファイル内のメールアドレスを暗号化する場合、通常のHTMLを16進数に変更するソフトで暗号化(16進数化)すれば良いのでしょうか? ちなみに、HTMLメールアドレスを16進数に変更するソフトは、「HTMLエンティティ生成」を現在使用しています。 URL:http://ab.jpn.ph/soft/html_rand.html もしもHTMLを16進数に変更するソフトでのphpファイル内のメールアドレスの暗号化が不可能な場合、PHP内に記述されたメールアドレス(又はPHPコードを)暗号化するソフトや方法などをご紹介下さい。 よろしくお願いします。 キャサリン

  • PHP
  • 回答数3
  • ありがとう数2

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

  • ベストアンサー
  • nick9090
  • ベストアンサー率26% (102/378)
回答No.2

失礼ですが、キャサリンさんはHTML(HTTP)の仕組み、およびPHPスクリプトの動作の仕組みをご存知でしょうか? もしご存知でしたら、ご心配しているようなことは原理的に起こりえないことがお分かりになるはずだと思います。 さきほど私の回答にも書きました通り、通常の設定であれば、PHPスクリプトの中身(ソース)に書いてある何か(例えばご質問の場合、メールアドレス)をブラウザやクローラーが見ることは「絶対に」不可能です。 PHPスクリプトが動作する仕組みをごくごく簡単にご説明しますと、 ●クライアント(ブラウザやクローラー)がリクエストを出す(たとえば http://example.com/test.phpにアクセスする) ↓ ●そのリクエストを受け取ったWebサーバ(Apacheなど)は、該当するスクリプト(この例の場合はtest.php)を実行する。(実際に処理するのはPHPのモジュールですが) ↓ ●実行した結果、何らかの出力があれば、Webサーバはそれを(多くの場合HTMLとして)クライアントに返す。この時点で、はじめてクライアントは何かしらの情報をサーバから得て、何かを画面に表示できるわけです。 上記のような仕組みで動作しているため、2番目の段階(スクリプトが実行される段階)でメールアドレスを出力する命令を出していない限り、スクリプトのソース内に書かれているメールアドレスがクライアントに伝わることは絶対にあり得ません。 もし、上記の説明でご納得されず、どうしても「クローラーがPHPスクリプトのソースを読めるのではないか」という疑いが解けないようでしたら、以下のようなスクリプトをサーバに置いて実験されてみてはいかがでしょうか? <?php //↓外部に公開してないメアドなら何でもいいので、書いておく $test = crawler-test@あなたのドメイン名 ?> もしもこれで、このメアド宛てにスパムが来れば、キャサリンさんのご心配しているような事態が実際に起こった、ということになります。 逆にこれでスパムが来なければ、そのご心配は杞憂だった、ということになります。 なお、 >サーバ側のHTMLファイル内のメールアドレスは暗号化されたもので、そのHTMLファイルがブラウザーに出力されたメールアドレス(正しいメールアドレスとして出力されます。)とは異なります。 ↑これにつきましてはちょっと意味が分かりかねます・・・。 最初のご質問で、 >今回の場合、メールアドレス(example@example.com)がブラウザーに出力される必要はありません。 とおっしゃっていたのですから、最終的にブラウザに渡されているHTMLにはメアドが含まれていないはずですよね。

kitty1000
質問者

お礼

nick9090さん ご回答ありがとうございました。 了解しました。 キャサリン

その他の回答 (2)

  • borazu
  • ベストアンサー率53% (8/15)
回答No.3

>なぜサーバ側のHTMLファイル内のメールアドレスを暗号化しているとHTMLファイル内のメールアドレスがメールアドレス回収ロボットに回収されずにスパムメールが送られてこないのでしょうか? についてなんですが、メールアドレス回収ロボットを作ったこともないし、そのプログラムソースを見たこともないのでなんともいえないけども。。。 HTMLファイル内のメールアドレスがメールアドレス回収ロボットに回収されないのは、 HTMLソース内のtestmail@test-des.co.jpという文字列を回収対象にしているだけであって、 (1) testmail@test-des.co.jpを暗号化した、 (2) &#x6d;&#x61;&#x69;&#x6c;&#x74;o:te&#x73;t&#x6d;a&#x69;&#x6C;@te&#x73;t&#x2d;de&#x73;&#x2E;co.jpとか、 (3) te&#x73;t&#x6d;a&#x69;&#x6C;@te&#x73;t&#x2d;de&#x73;&#x2E;co.jpとかは、メールアドレス回収ロボットからすると メールアドレスでは無いとして、回収対象外としているからなのではないでしょうか。

kitty1000
質問者

お礼

borazuさん ご回答ありがとうございました。 参考になりました。 キャサリン

  • nick9090
  • ベストアンサー率26% (102/378)
回答No.1

PHPファイル内のメールアドレスがクローラーに収集されるということは原則としてありえません。 サーバー(Apacheなど)がブラウザやクローラーからPHPファイルへのリクエストを受け取った場合、PHPスクリプトの内容を実行し、その結果出力されたHTMLを渡すだけです。 ですから、自分でメールアドレスをechoなどしていない限り、PHPファイル内のメアドは出力されません。したがってメアドがHTMLとしてブラウザに出力されないのであれば、暗号化する必要もありません。 ただし例外として、サーバーの設定や.htaccessの設定次第では、PHPファイルの内容そのものを出力してしまうことがありますので、ご注意ください。(でも、これは自分で意図的に設定しない限り、通常はそうはならないので、大丈夫だとは思いますが)。詳しくは「php htaccess addhandler」等で検索してみてください。

kitty1000
質問者

補足

nick9090さん ご回答ありがとうございました。 >メアドがHTMLとしてブラウザに出力されないのであれば、暗号化する必要もありません。 上記の点ですが、私の場合HTMLファイル内のメールアドレスはメールアドレス回収ロボットに回収されないように暗号化(16進数化)しています。つまり、サーバ側のHTMLファイル内のメールアドレスは暗号化されたもので、そのHTMLファイルがブラウザーに出力されたメールアドレス(正しいメールアドレスとして出力されます。)とは異なります。このようにしていると、HTMLファイルのメールアドレスがメールアドレス回収ロボットに回収されずにスパムメールが来ません。 もしもnick9090さんがおっしゃるようにクラウラーは出力されたHTMLだけを見ている(回収する)のならば、サーバ側のHTMLファイル内のメールアドレスを暗号化していても出力されたHTMLのメールアドレス(正しいメールアドレス)を回収してスパムメールが送られてくるはずですが、なぜサーバ側のHTMLファイル内のメールアドレスを暗号化しているとHTMLファイル内のメールアドレスがメールアドレス回収ロボットに回収されずにスパムメールが送られてこないのでしょうか? メールアドレス回収ロボットが出力されたHTMLのメールアドレス(正しいメールアドレス)ではなく、暗号化しているサーバ側のHTMLファイル内のメールアドレスを回収しているからではないのですか?もしそうならば、PHPファイル内のメールアドレスも暗号化の必要があるように思えますが? ご教授下さい。 キャサリン

関連するQ&A

  • phpからのメール送信

    サーバにはpostfix/phpがインストールされており mb_send_mail関数を使ってメールを送信しております。 example.comというドメインを例として説明すると fromがtest@example.comというメールアドレスでは問題なく送ることができるのですが、 ドメインをexample.com→mail.example.comと変更し、test@mail.example.comというアドレスで送ろうとすると maillog上はtest@mail.example.comから送っていることになっているのですが、 メーラーで受信するとformがtest@example.comになっております。 サブドメインのmail.example.comから送るようにするにはどのようにしたらよろしいでしょうか? main.cf virtual_alias_domains=example.com mail.example.com virtual_alias_maps = hash:/etc/mail/virtual /etc/mail/virtual test@example.com test test@mail.example.com test

  • スパムメール対策

    スパムメール対策として ホームページやブログにメールアドレスを公開する場合に info*nantoka.com    スパムメール対策表示です。*は@に変更してメールをお願いします。 と書く事は有効でしょうか。

    • ベストアンサー
    • Mac
  • PHPファイルの暗号化(難読化)方法

    PHPファイルの暗号化(難読化)方法 PHPファイルを暗号化(難読化)する方法を探しています。 現在は、有料の暗号化ツールを使用せずに、 自作で暗号化(難読化)を実施可能かどうかを検討しております。 ファイル全体を暗号化したいのですが、 ファイル内容は、PHPの開始タグ(<?php)、終了タグ(?>)とHTMLタグが混在していて それをbase64_encodeなどを使用し、暗号化をかけた場合、 base64_decodeで復号をかけたデータをブラウザにて実行させたい場合は、 どのようにすればよいか困っています。 eval関数は、phpソースコードを実行するため、 PHPの開始タグ、終了タグをのぞいた、phpコードしか実行できません。 echo関数では、phpソースコードもそのまま出力されます。 PHPの開始タグ、終了タグとHTMLタグ混在していても、 ブラウザ上でphpコードの実行とHTMLタグの出力が実行できる方法はないでしょうか。 ネット上で調べてみましたが、 phpコードのみを暗号化して、eval関数で実行するものしか 発見することができませんでした。 そもそも、ファイル全体を上記のような方法で復号化⇒実行することは無理で、 ファイルの中身を解析し、タグの置き換えや、 eval関数が使用可能な処理とそうでない処理とに分けるようなことになるのでしょうか。 暗号の目的は、ファイルが一見、何を行っているのかわからなく、 そのまま処理を使いまわしできないようにしたいためです。 PHPや暗号化に詳しい人が復号化できてしまうことは、理解しております。 何か方法やアドバイス等、ございましたら、 ご回答頂ければと思います。 phpバージョンは、5.2.14です。 以上、よろしくお願いします。

    • ベストアンサー
    • PHP
  • メールをトリガーにPHPを実行したい

    初めまして、メールをトリガーにPHPを実行したいと思い、 下記のように.forwardを書きました。 ドメイン:example.com アカウント:hogehoge メールアドレス:info@hogehoge.example.com \info: "|user/bin/php /home/hogehoge/public_html/index.php" ですが、info@hogehoge.example.comにメールを送信しても実行してくれません。 どのように記述すれば良いのでしょうか? 環境 Linux Root /home/hogehoge Sendmail /usr/sbin/sendmail よろしくお願いします

  • メールアドレスをスパム送信者から守るには

    パスワード認証がかけられているページに、メンバーのメールアドレスが数件掲載されています。 そのメールアドレスをスパム送信者からまもるにはどのように対策したらよいのでしょうか。 たとえば、画像にするには、メールアドレス分が必要で大変です。 @を全角にするにしても、プログラムが全角対応ですと意味がありません。暗号化したほうがよいのでしょうか。

    • ベストアンサー
    • HTML
  • スパムメールの宛先が自分のアドレスではない??

    スパムメールの宛先が、 自分のアドレスではないのに、届いています。 メッセージヘッダーの宛先を見ると、 aaa@ok.com になっているのに、自分のアドレス bbb@wave.ne.jp に届いているのですが、これはどういうことなのでしょう? 宛先がaaa@ok.comで、他のアドレスにはbccで配信されているのでしょうか?

  • PHP メールフォームで使用しているアドレスを変更

    PHP初心者の者です。 会社のウェブサイトでメールフォーム専用に使っているアドレスに、なぜか迷惑メールが多数入ってくるので、現在使用しているものを廃棄し、新しいアドレスに設定しなおしたいと思っています。 質問は下記の2点です。 1)サーバの中のファイルのソースを確認したところ、メールアドレスが書かれているPHPファイルがありました。  このファイルのアドレスの記載を、新しく作ったアドレスに変更すればOKでしょうか?  また更新方法ですが、メモ帳等のテキストエディタで大丈夫でしょうか? 2)更新後、うまく動かなかった場合に供え、あらかじめ更新前のPHPファイルを別途保存しておこうと思います。  あちこち更新した挙句にうまく動かなくなった場合は、更新前のファイルをアップロードして上書き保存すればOKでしょうか? 情報不足の質問かもしれませんが、以上どうぞよろしくお願い致します。 ※参考になるかわかりませんが、当方HTMLとCSSは少々わかります。

    • ベストアンサー
    • PHP
  • WEBにメールアドレスを公開したいが、スパムが怖い

    現在持っているHPで問い合わせ先のメールアドレスを 記載したいのですが 普通に載せてしまうとスパムがたくさん来ますよね? そこで aaa(アットマーク)@xxx.com というような書き方をすればスパムを防げると聞いたのですが 最近はそうでもないという意見もあります 実際どのようにすれば効果的にスパムを防げますか? よろしくお願いします

  • PHPから外部コマンドを使ってメールを送信した際のエラー

    PHPから外部コマンドを使ってメールを送信したいのです。つい先日までうまくいっていました。しかし、今日になって以下のようなエラーメッセージをログで発見しました。 [/var/log/maillog] May 16 13:17:22 localhost postfix/sendmail[15178]: fatal: open /etc/postfix/main.cf: Permission denied そう言えば、昨日サーバーが一時的にダウンしたので、再起動させました。しかし、Postfixは起動しています。また、コマンドラインから以下のように実行すると、ちゃんとaaa@example.comでそのメールを受信することができます。(便宜上、ここにおいて、aaa@example.comは架空のメールアドレス。) echo 'Hello!' | mail -s 'Test' aaa@example.com どこにミスがあるのでしょうか?

  • php、Javascript、スタイルシート、HTML、htpasswd等のファイル又はファイル内の一部のコードを暗号化したい

    php、Javascript、スタイルシート、HTML、htpasswd等のホームページ制作関連のファイル又はファイル内の一部のコードを暗号化したいのですが、何かお勧めのソフトはあるでしょうか?一つのソフトでこれらすべてのファイルの暗号化が出来る必要はありません(複数のソフトに分割されて結構です。)が、一つにまとまっているソフトなどあれば便利ですね。 用途は、ホームページ関連のファイルをサーバに上げる前に暗号化するためです。 無料ソフトで良質なものがあるにこしたことはありませんが、有料ソフトでも結構です。 出来れば、複数の候補を教えていただいて、その候補内で順列をつけて頂きたいです。 私のOSはWindowsXPです。 このスレッドに関する情報が記載されているサイトのURL等もお願いします。 よろしくお願いします。

専門家に質問してみよう