質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

1回答

1044閲覧

問い合わせフォームにくる無記入のメール

mikiko.s

総合スコア14

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2020/05/22 06:53

編集2022/01/12 10:55

前提・実現したいこと

問い合わせフォームを正常にしたい

発生している問題・エラーメッセージ

問い合わせフォームを作ったのですが、無記入のメールがきます。メールのヘッダー情報に、送ってきたユーザーの情報と思われるところものっていません。 問い合せは、表示画面→送信確認画面→送信完了画面と、ファイルは3つあるのですが、 アナリティクスで確認すると、その問い合わせは送信完了画面にランディングしてきています。 何か予想される原因などわかりましたら、教えていただけないでしょうか。 どうぞよろしくお願い致します。

該当のソースコード

<?php foreach ($_POST as $key => $value){ $post[$key] = htmlspecialchars($value); } //メール送信用 mb_language("Japanese"); mb_internal_encoding("UTF-8"); $to = $post["mail"] ; $to_saiyo = "●●●●●●●●●●●●●●●●●"; $mb_title = "お問い合わせ"; $content .= " 受付完了のご連絡 ■□■--------------------------------------------------------- お問い合わせ ---------------------------------------------------------■□■ ". $post['name'] ."様 問い合わせいただきましてありがとうございます。 弊社担当より、近日中にご連絡いたします。 少々お待ちくださいませ。 ※本メールは自動返信とさせていただいております。 "; foreach ($post as $key => $value) { if ($key=="name") { $content .= "■氏名:".$value."\r\n"; $saiyo_content .= "■氏名:".$value."\r\n"; }elseif ($key=="hurigana") { $content .= "■フリガナ:".$value."\r\n"; $saiyo_content .= "■フリガナ:".$value."\r\n"; }elseif ($key=="university") { $content .= "■大学:".$value."\r\n"; $saiyo_content .= "■大学:".$value."\r\n"; }elseif ($key=="major") { $content .= "■学部・学科:".$value."\r\n"; $saiyo_content .= "■学部・学科:".$value."\r\n"; }elseif ($key=="number") { $content .= "■学年:".$value."\r\n"; $saiyo_content .= "■学年:".$value."\r\n"; }elseif ($key=="club") { $content .= "■部活・サークル:".$value."\r\n"; $saiyo_content .= "■部活・サークル:".$value."\r\n"; }elseif ($key=="tel") { $content .= "■電話番号:".$value."\r\n"; $saiyo_content .= "■電話番号:".$value."\r\n"; }elseif ($key=="address") { $content .= "■住所:".$value."\r\n"; $saiyo_content .= "■住所:".$value."\r\n"; }elseif ($key=="mail") { $content .= "■メールアドレス:".$value."\r\n"; $saiyo_content .= "■メールアドレス:".$value."\r\n"; }elseif ($key=="ask") { $content .= "■お問い合わせ内容:".$value."\r\n"; $saiyo_content .= "■お問い合わせ内容:".$value."\r\n"; } } $content .= " ===================================== 株式会社●●●●●●●●● ===================================== "; $from = "From: website\r\nReturn-Path:website"; mb_send_mail($to, $mb_title, $content, $from);//お客様向け; mb_send_mail($to_saiyo, $mb_title, $saiyo_content, $from);//営業向け ?> <!DOCTYPE html> <html lang="ja" dir="ltr"> <head> <!-- Event snippet for メール反響 conversion page --> <script> gtag('event', 'conversion', {'send_to': 'AW-733556925/OttZCLHp3qIBEL3h5N0C'}); </script> </head> <body> <form class="entry" id="entry" action="sendmail.php"> <p>以下の内容で送信しました。ありがとうございました。</p> <ul class="confirm" id="confirm"> <dt class="confirm__title">氏名</dt> <dd class="confirm__description"><?php echo $post["name"] ?></dd> <dt class="confirm__title">フリガナ</dt> <dd class="confirm__description"><?php echo $post["hurigana"] ?></dd> <dt class="confirm__title">電話番号</dt> <dd class="confirm__description"><?php echo $post["tel"] ?></dd> <dt class="confirm__title">メールアドレス</dt> <dd class="confirm__description"><?php echo $post["mail"] ?></dd> <dt class="confirm__title">お問い合わせ内容</dt> <dd class="confirm__description"><?php echo $post["ask"] ?></dd> </ul> </form> </body> </html> コード

ソースコード

### 試したこと ここに問題に対して試したことを記載してください。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

どう組んでいるのか知らないですが、完了画面に直接アクセスできるようになっているのでしょう。
まずはGETリクエストは弾くようにしてください。

投稿2020/05/22 07:50

m.ts10806

総合スコア80765

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2020/05/22 07:51

ただ、GETリクエストを弾いてないとしたら他の脆弱性もたんまりある気がするので、攻撃の的になる前にいったん機能をおとした方が良さそう。
mikiko.s

2020/05/22 08:09

回答ありがとうございます。ソースを載せさせていただきました。可能であればご覧いただいても良いでしょうか。送信完了ページのソースです。
m.ts10806

2020/05/22 08:19

直接URLでアクセス可能ですね。 REQUEST_METHODからGETを許可しないようにしてください。 gtagのアクセスキーは公開して大丈夫ですか? あと、htmlspecialcharsは画面出力時に対応してください。 他にもメールフォームのセキュリティ対策は必ず確認すること。ただ、それなりの熟練者でないと正しい対応は難しいものですので、ひとまず今すぐそのメールのプログラムはおとした方がいいです。スパムの発射台にされるかもしれません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問