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

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

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

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

Q&A

解決済

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

popos1123
popos1123

総合スコア1

PHP

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

2回答

0グッド

0クリップ

500閲覧

投稿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

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

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タグの役割が無効化されたそういう文字」として画面に表示されます。

回答2

2

ベストアンサー

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

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

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

投稿2022/08/15 09:10

編集2022/08/15 09:12
tanat

総合スコア18611

nikuatsu, kei344👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

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

総合スコア109850

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

popos1123

2022/08/15 08:40

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

2022/08/15 08:57

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

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

ただいまの回答率
86.02%

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

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

質問する

関連した質問

同じタグがついた質問を見る

PHP

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