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

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

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

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

1回答

310閲覧

お問い合せで <script>alert("xx");</script>の文字列を入れると、確認画面でUIが崩れる。

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

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

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

2クリップ

投稿2023/05/30 05:36

編集2023/05/30 06:19

実現したいこと

お問い合せフォーム画面で <script>alert("xx");</script>の文字列を入れてもUIが崩れないようにしたい。
初歩的な質問で大変申し訳ございませんTT

前提

イメージ説明

イメージ説明

該当のソースコード

<?php session_start(); ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <link rel="stylesheet" type="text/css" href="contact.css"> <script type="text/javascript" src="https://code.jquery.com/jquery-3.4.1.min.js"></script> </head> <body> <?php include('header.php'); ?> <div class="contact"> <h2>お問い合わせ</h2> <div class="contact-form"> <p>下記の項目をご記入の上送信ボタンを押してください</p> </div> <div class="contact-text"> <p>送信頂いた件につきましては、当社より折り返しご連絡を差し上げます。</p> <p>なお、ご連絡までに、お時間を頂く場合もございますので予めご了承ください。</p> <p><span>*</span>は必須項目となります。</p> </div> <form method="post" action="confirm.php"> <div class="contact-input"> <p>氏名<span>*</span></p><?php if(isset($_SESSION['result_name'])) { echo "<font color=\"red\">{$_SESSION['result_name']}</font>"; }?> <input type="text" name="name" id="mane" placeholder=" 山田太郎" value="<?php if(isset($_SESSION['name_ret'])) { echo "{$_SESSION['name_ret']}"; } ?>"> <p>フリガナ<span>*</span></p><?php if(isset($_SESSION['result_ruby'])) { echo "<font color=\"red\">{$_SESSION['result_ruby']}</font>"; }?> <input type="text" name="ruby" id="ruby" placeholder=" ヤマダタロウ" value="<?php if(isset($_SESSION['ruby_ret'])) { echo "{$_SESSION['ruby_ret']}"; } ?>"> <p>電話番号(ハイフンなし)<span></span></p><?php if(isset($_SESSION['result_phone'])){ echo "<font color=\"red\">{$_SESSION['result_phone']}</font>"; }?> <input type="text" name="phone" id="phone" placeholder=" 09012345678" value="<?php if(isset($_SESSION['phone_ret'])) { echo "{$_SESSION['phone_ret']}"; } ?>"> <p>メールアドレス<span>*</span></p><?php if(isset($_SESSION['result_email'])) { echo "<font color=\"red\">{$_SESSION['result_email']}</font>"; }?> <input type="text" name="email" id="email" placeholder=" test@test.co.jp" value="<?php if(isset($_SESSION['email_ret'])) { echo "{$_SESSION['email_ret']}"; }?>"> </div> <div class="contact-form"> <p>お問い合わせ内容をご記入ください<span>*</span></p> </div> <div class="contact-textarea"><?php if(isset($_SESSION['result_contact'])) { echo "<font color=\"red\">{$_SESSION['result_contact']}</font>"; }?> <textarea type="text" name="contact" id="contact"><?php if(isset ($_SESSION ['contact_ret'])) { echo "{$_SESSION['contact_ret']}"; }?></textarea> </div> <div class="contact-button"><button onclick="return check()" type="submit" name="submit" class="submit">送 信</button></div> </form> </div> <script> function check() { var result = ""; var aaa = document.getElementById("phone"); var phoneValue = aaa.value; var bbb = document.getElementById("email"); var emailvalue = bbb.value; if ($("input[name='name']").val() == '' || $("input[name='name']").val().length >= 10) { var name = "氏名は必須入力事項です。10文字以内で入力してください。\n"; var result = result + name; } if ($("input[name='ruby']").val() == '' || $("input[name='ruby']").val().length >= 10) { var ruby = "フリガナは必須入力事項です。10文字以内で入力してください。\n"; var result = result + ruby; } if ($("input[name='phone']").val() != '' && !phoneValue.match(/^[0-9]+$/)) { var phone = "電話番号は0-9の半角数字でご入力ください(ハイフンなし)\n"; var result = result + phone; } if ($("input[name='email']").val() == '' || !emailvalue.match(/.+@.+\..+/)) { var email = "メールアドレスは正しくご入力ください。\n"; var result = result + email; } if ($("textarea[name='contact']").val() == '') { var contact = "お問い合わせ内容は必須入力事項です。\n"; var result = result + contact; } if (result === "") { return true; } else { alert(result); } }; </script> <?php include 'footer.php'; ?> </body> </html>

実施したこと

<div class="contact-form"> <p>お問い合わせ内容をご記入ください<span>*</span></p> </div> <div class="contact-textarea"> <?php if (isset($_SESSION['result_contact'])) { echo "<font color=\"red\">" . htmlspecialchars($_SESSION['result_contact'], ENT_QUOTES, 'UTF-8') . "</font>"; }?> <textarea type="text" name="contact" id="contact"><?php if (isset($_SESSION['contact_ret'])) { echo htmlspecialchars($_SESSION['contact_ret'], ENT_QUOTES, 'UTF-8'); }?></textarea> </div>

ーーーー改善なし

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

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

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

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

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

int32_t

2023/05/31 23:24

質問文のコードは confirm.php ですか? 具体的どういう表示になれば「UIが崩れない」になりますか。
guest

回答1

0

$_SESSIONの値を出力する際にhtmlspecialcharsでエスケープしてください

投稿2023/05/30 06:04

yambejp

総合スコア114779

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

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

退会済みユーザー

退会済みユーザー

2023/05/30 06:20

ご回答ありがとうございます。 <div class="contact-form"> <p>お問い合わせ内容をご記入ください<span>*</span></p> </div> <div class="contact-textarea"> <?php if (isset($_SESSION['result_contact'])) { echo "<font color=\"red\">" . htmlspecialchars($_SESSION['result_contact'], ENT_QUOTES, 'UTF-8') . "</font>"; }?> <textarea type="text" name="contact" id="contact"><?php if (isset($_SESSION['contact_ret'])) { echo htmlspecialchars($_SESSION['contact_ret'], ENT_QUOTES, 'UTF-8'); }?></textarea> </div> このように変更したのですが改善されません。
68user

2023/05/31 11:40

表示崩れが起こっているのは確認画面っぽいので、なおすべきは confirm.php なのでは。 とはいえ、< > " ' & などが入りうるあらゆる箇所で htmlspecialchars でエスケープすべきです。 それをしないと XSS 脆弱性となります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問