DOBON.NET DOBON.NETプログラミング掲示板過去ログ

メールアドレスを他人に利用される

分類:[.NET]

2005/01/13(Thu) 22:56:09 編集(投稿者)

http://dobon.net/vb/dotnet/internet/smtpmail.html
この方法でメールを送信できますが、
パスワード認証などがないので、
送信者のメールアドレスを他人のものにしても
SMTPサーバの指定があっていれば送信できてしまいますよね?
自分のメールアドレスが他人に利用されそうで気になるので、
どなたか詳細を教えてください。よろしくお願いします。
Fromなんてどうとでも書けるなんて常識です。
SMTPについて一度お勉強してみてはいかがですか?
> Fromなんてどうとでも書けるなんて常識です。

Fromを適当なアドレスにしたら送信できませんでした。
指定したサーバが存在しなかったり、
指定したサーバに指定したアカウントが存在しないと送信できないようです。
なのでどうとでも書けるということはないと思います。

一般的に差出人のメールアドレスの偽装は可能ですが、
http://dobon.net/vb/dotnet/internet/smtpmail.html
の場合、こんなに簡単に偽装できてしまってよいのか、
それを質問したいのですが・・・

他人のメールアドレスがaaa@bbb.comだった場合、
アカウントはaaa
サーバはbbb.com
これだけ分かれば送信できてしまいます。
こんにちは中です。


ですからですね。SMTPの現状を勉強してください。
あまりにも膨大な技術の集大成になっていますし、一言では"偽装できる"としか言えません。

>Fromを適当なアドレスにしたら送信できませんでした。

それはあなたのサーバの設定がそうなっているだけです。
全てがそうだとは限らないわけですし、個々の事情によって違います。
smithさん、こんにちは。聖といいます。
横レスすみません。

> Fromを適当なアドレスにしたら送信できませんでした。
> 指定したサーバが存在しなかったり、
> 指定したサーバに指定したアカウントが存在しないと送信できないようです。

確かにYBBのSMTPサーバなどで送る場合は、
存在しないアドレスでは送信できませんが、
それはサーバ側がそのようになっているから、というだけです。
SMTPの規格(仕様?)としては、
Fromに例えどのようなアドレスを指定したとしても、送信はできてしまいます。
SMTPではFrom、To等が存在するアドレスかどうかをいちいち調べないからです。


> こんなに簡単に偽装できてしまってよいのか、
> それを質問したいのですが・・・

SMTPの仕様上、できてしまいます。というのが現状ですが、
それを偽装できないようにするのが
プログラマの腕の見せ所なのではないでしょうか。
方法はいくらでもあると思います。
認証を使うなり独自に実装するなり。
やはり、VB.NETを使えば誰でも簡単に送信者を偽装したメールを送ることができるということですね。
ありがとうございました。
SMTPについては理解しているつもりですが、VBは簡単な言語なので、
6から.NETになってこんなに簡単にメールを送ることができるようになってしまい、
成りすましなどの悪質なメールが増えないかが心配です。
もちろん、受信者がヘッダから送信者を割り出すことはできるかもしれませんが、
初心者ならそこまで分からないと思いますし、
たとえ上級者でもすべてのメールのヘッダを確認したりはしないと思いますし・・・。
解決済み!
■No8425に返信(smithさんの記事)
> やはり、VB.NETを使えば誰でも簡単に送信者を偽装したメールを送ることができるということですね。
...
> SMTPについては理解しているつもりですが、VBは簡単な言語なので、
> 6から.NETになってこんなに簡単にメールを送ることができるようになってしまい、
> 成りすましなどの悪質なメールが増えないかが心配です。

まったく、頓珍漢なんですよねぇ...。

SMTP を理解しているのなら分かると思いますが、SMTP というプロトコ
ル自体 VB.NET なんかよりずっと簡単です。.NET Framework SDK より、
ずっとありふれている TELNET クライアントを使って、昔から誰でも簡
単に偽装メールを送ることができました。

何をいまさら、です。
私が言いたいのは、VBは世界中でかなり広まっている言語なので、
.NETになったことで今までSMTPなどについてぜんぜん何も分からなかったような人でも、
以前のVBよりも簡単に偽装メールを送信することができるようになってしまうので、
それが心配だと言っているだけです。
他の方法なら簡単な方法は以前からたくさんありましたが、
VBの基本的なことしか分からなかった人でも簡単にできるようになってしまったので・・・
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板