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

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

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

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

883閲覧

HTMLエンコード処理をしたい

ribula

総合スコア0

NetBeans

NetBeansは Java、HTML5、PHP、C/C++のアプリケーションのフレームワーク、もしくは統合開発環境(NetBeans IDE)の両方を指します

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2020/10/29 11:34

編集2020/10/30 01:33

前提・実現したいこと

HTMLエンコード処理をしたい。

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

エンコード処理についての質問です。 これは市区町村を入力するページなのですが、サーブレットの中で <script >alert("再起動します");</script>のようなコードをブロックするためにサニタイジングを行いたいです。 よろしくお願いします。

該当のソースコード

java

1import java.io.*; 2import javax.servlet.*; 3import javax.servlet.http.*; 4 5public class AddressServlet extends HttpServlet { 6 private String htmlencode(String original){ 7 StringBuffer encoded = new StringBuffer(); 8 for (int i = 0; i < original.length(); i++){ 9 char c = original.charAt(i); 10 switch (c){ 11 case '<': 12 encoded.append("&lt;"); 13 break; 14 case '>': 15 encoded.append("&gt;"); 16 break; 17 case '&': 18 encoded.append("&amp;"); 19 break; 20 case '\"': 21 encoded.append("&quot;"); 22 break; 23 default: 24 encoded.append(c); 25 } 26 } 27 return encoded.toString(); 28 } 29 30 public void doPost(HttpServletRequest request, HttpServletResponse response) 31 throws ServletException, IOException { 32 request.setCharacterEncoding("UTF-8"); 33 String strCity = request.getParameter("city"); 34 response.setContentType("text/html; charset=UTF-8"); 35 PrintWriter out = response.getWriter(); 36 out.println("<html><head><title>結果出力</title></head><body>"); 37 out.println(strCity);//ここにHTMLエンコード処理 38 out.println("</body></html>"); 39 } 40} 41 42htmlコード 43<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 44<title>住所表示</title></head><body> 45 46<form action="/address/AddressServlet" method="POST"> 47 市町村= 48 <input type="text" name="city" size="10" /> 49 <input type="submit" value="送信" /> 50</form> 51 52</body></html> 53

試したこと

Webサイトを色々回って調べましたが、自力で解決出来ませんでした。

補足情報(FW/ツールのバージョンなど)

Netbeansを使っています。

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

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

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

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

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

dodox86

2020/10/30 00:08

ご質問内容がどうも意味不明なのですが、 > <script >alert("再起動します");</script>のようなコードを入力するとアラートが出てしまうのを止めたいです。 alert()を呼び出しているのであるからアラートが出るのは当然なのでは。それとも何らかの文法や実行時のエラー、警告が出ているということなのでしょうか。
ribula

2020/10/30 00:44

意味不明な質問になってしまっていてすみません。 このコードを実行すると市区町村を入力できるサイトが立ち上がります。 その市区町村を入力する場所に<script >alert("再起動します");</script>のようなアラートを入力するとサイト全体に警告が出るので、そういった悪戯を防止するためにHTMLのエンコード処理をしたいという意図です。 分かりづらい説明で申し訳ありません。
dodox86

2020/10/30 00:52

コメントの返信をいただいたものの、提示されているコードには市区町村を入力するサイトのURLなどありませんし、正直、私にはいまだに状況が良く分かりません。HTMLやフォームについて、セキュリティに関わるサニタイジングの話でしょうか。質問文(<このコメント欄ではありません)を修正し、適切な情報をより詳細に書けば回答をいただけるかと思います。
ribula

2020/10/30 01:43

返信ありがとうございます。 サイトのURLではないのですが、htmlのソースコードを追加しました。 サニタイジングのことであっております。 初心者なのでアドバイス頂けて助かりました。 ありがとうございます。
退会済みユーザー

退会済みユーザー

2020/10/30 04:33

> 色々回って調べました これを明かしていただかないと、同じ内容しかもらえないかもしれませんよ。
momon-ga

2020/10/30 05:08

htmlencodeを呼んでないけど・・・
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問