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

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

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

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

Q&A

解決済

2回答

744閲覧

PHPのformでHTMLタグを送信したいがエラーが発生する

popos1123

総合スコア1

PHP

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

0グッド

0クリップ

投稿2022/08/15 08:29

編集2022/08/15 08:38

前提

PHPでFORMを作成してます。

HTMLタグの入った内容を送信するフォームを作成しており、
HTMLタグがはいっているとエラーがでてしまうようです。

これを対処するにはどうすればよろしいでしょうか?

実現したいこと

  • HTMLソースが入っていても送信できるようにしたい

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

403 ERROR The request could not be satisfied. Request blocked. We can't connect to the server for this app or website at this time. There might be too much traffic or a configuration error. Try again later, or contact the app or website owner. If you provide content to customers through CloudFront, you can find steps to troubleshoot and help prevent this error by reviewing the CloudFront documentation. Generated by cloudfront (CloudFront) Request ID: -H5911pEKSTfAvo7TSINLRJTo71E_uV_6UFeY_ovTsUFE3414UUkbQ==

該当のソースコード

送信元のコード

PHP

1<form action="thx.php" method="POST"> 2 <table class="form"> 3 <tbody> 4 <tr> 5 <th>自己紹介</th> 6 <td><textarea name="txtData" rows="6">こんにちは!プロフィールは<a href="https://XXXXXXX.com">こちらを見てください</a></textarea> </td> 7 </tr> 8 <td colspan="2"> 9 <div class="linkBtn"> <input type="hidden" name="cmd" value="check"> <input type="submit" class="submit_btn" value="送信"> </div> 10 </td> 11 </tr> 12 </tbody> 13 </table> 14</form>

送信先のコードは以下になります。

PHP

1<table class="form"> 2<tbody> 3<tr> 4<th>自己紹介</th> 5<td><?= $_POST["txtData"]; ?></td> 6</tr> 7</tbody> 8</table> 9

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

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

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

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

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

maisumakun

2022/08/15 08:30

送信先のコードはどのようになっていますか?
popos1123

2022/08/15 08:37

コメントありがとうございます。 送信先のコードは以下になります。 ```PHP <table class="form"> <tbody> <tr> <th>自己紹介</th> <td><?= $_POST["txtData"]; ?></td> </tr> </tbody> </table> ```
hoshi-takanori

2022/08/15 08:51

もしかして CloudFront の WAF が XSS を検出したのかも? サーバーのログを確認してみては。
m.ts10806

2022/08/15 09:09

環境情報提示してください。 質問は編集できます。 あと勘違いされてるようですが、エスケープしないと「HTMLタグがHTMLタグの役割」を果たしてしまうので、teratailの投稿フォームと同じになりません。 エスケープされるから「HTMLタグの役割が無効化されたそういう文字」として画面に表示されます。
guest

回答2

0

ベストアンサー

PHPのソースコードとは関係なく、CloudFrontのWAF機能で止められている状況ですね。
(WEBサーバのアクセスログを確認してみてください、403が発生する時にはアクセス自体が無いはずです)

「403 エラー - リクエストに失敗しました」を解決するにはどうすればいいですか。CloudFront でリクエストはブロックされました」エラーを解決する方法を教えてください。
が質問の状況と合致するかと思います。

ご自身がCloudFrontの設定を変更できる権限をお持ちであれば、参考ページに沿って設定してみてください。
(学習段階ということであれば、まずはEC2単体でアクセス出来るようにする、ローカルサーバで開発するなどのシンプルな構成にしてログ確認など出来るようにしてからCloudFront等を使うことをお勧めします)
ご自身に権限が無ければ、権限のある人に相談して設定してもらうしかありません。

投稿2022/08/15 09:10

編集2022/08/15 09:12
tanat

総合スコア18713

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

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

0

403エラーですからthx.phpの属性がおかしいのでは?

デバグとして試しに自分自身に送ってみるとよいでしょう

PHP

1<?PHP 2print_r($_POST); 3?> 4<form method="POST"> 5 <table class="form"> 6 <tbody> 7 <tr> 8 <th>自己紹介</th> 9 <td><textarea name="txtData" rows="6">こんにちは!プロフィールは&lt;a href=&quot;https://XXXXXXX.com&quot;&gt;こちらを見てください&lt;/a&gt;</textarea> </td> 10 </tr> 11 <td colspan="2"> 12 <div class="linkBtn"> <input type="hidden" name="cmd" value="check"> <input type="submit" class="submit_btn" value="送信"> </div> 13 </td> 14 </tr> 15 </tbody> 16 </table> 17</form>

またtextarea内のタグや指定文字はきちんとエスケープ処理してください

投稿2022/08/15 08:38

編集2022/08/15 08:41
yambejp

総合スコア114843

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

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

popos1123

2022/08/15 08:40

入力されているHTMLタグをはずすと、送信されました。 こんにちは!プロフィールは<a href="https://XXXXXXX.com">こちらを見てください</a> ↓ こんにちは!プロフィールはこちらを見てください
popos1123

2022/08/15 08:57

コメントありがとうございます! 入力時にエスケープ処理したくないです。 例えば、terarailの質問を投稿するフォームでも、そのままHTMLタグの記入ができました。 それと同じようにしたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問