C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: テキストボックスで改行を行いたい


(過去ログ 57 を表示中)

[トピック内 18 記事 (1 - 18 表示)]  << 0 >>

■32275 / inTopicNo.1)  テキストボックスで改行を行いたい
  
□投稿者/ ガロ (1回)-(2009/02/04(Wed) 12:25:27)

分類:[.NET 全般] 

環境:VS2003 C#

テキストボックスに改行<BR>を入力して、変更ボタンを押した際に<BR>を入れた場所で改行できるように編集したいのですが、
そのまま行うと、下記のようなエラーになってしまいます。
どのような対処法があるのでしょうか?

(エラー内容)
System.Web.HttpRequestValidationException: 危険な可能性のある Request.Form 値がクライアント (TextBox_Comment="...外出された場合は早退<br>とみなし処理いたしますのでご了承...") から検出されました。

引用返信 編集キー/
■32276 / inTopicNo.2)  Re[1]: テキストボックスで改行を行いたい
□投稿者/ επιστημη (1652回)-(2009/02/04(Wed) 12:26:54)
επιστημη さんの Web サイト
...ちょいまち、ドコ見てナニ喋ってんの? ひょっとしてWebアプリ?

引用返信 編集キー/
■32277 / inTopicNo.3)  Re[2]: テキストボックスで改行を行いたい
□投稿者/ ガロ (2回)-(2009/02/04(Wed) 12:31:17)
そうです。

No32276 (επιστημη さん) に返信
> ...ちょいまち、ドコ見てナニ喋ってんの? ひょっとしてWebアプリ?
>
引用返信 編集キー/
■32279 / inTopicNo.4)  Re[3]: テキストボックスで改行を行いたい
□投稿者/ Mr.T (308回)-(2009/02/04(Wed) 12:58:18)
Mr.Tです、こんにちは。

テキストボックスを複数行入力にしてやるとかいう方法はだめなんですかね?
そのまま改行でいけるとおもうんですけど。
引用返信 編集キー/
■32280 / inTopicNo.5)  Re[4]: テキストボックスで改行を行いたい
□投稿者/ ガロ (3回)-(2009/02/04(Wed) 13:02:06)
Mr.Tさん、返信ありがとうございます。

確かにそのような事も提案したのですが、却下されたしだいで、
何とかできないものかと思い、いろいろと調べたのですが、
知識不足もあり、質問にいたりました。

No32279 (Mr.T さん) に返信
> Mr.Tです、こんにちは。
>
> テキストボックスを複数行入力にしてやるとかいう方法はだめなんですかね?
> そのまま改行でいけるとおもうんですけど。
引用返信 編集キー/
■32281 / inTopicNo.6)  Re[5]: テキストボックスで改行を行いたい
□投稿者/ みきぬ (367回)-(2009/02/04(Wed) 13:07:49)
No32280 (ガロ さん) に返信
> 確かにそのような事も提案したのですが、却下されたしだいで、
> 何とかできないものかと思い、いろいろと調べたのですが、
> 知識不足もあり、質問にいたりました。

「提案したが、却下された」ということは、お仕事かなんかで作成されているのでしょうか。
タグを入力可にすることは可能ですが、注意しないと(ときどきは、注意しても)セキュリティホールを作るおそれがあります。
なので、タグを入力せずにすむ方法があれば、それに越したことはないと思います。

どうしてもタグの入力が必要なのであれば、↓のページあたりは読んで理解してほしいかな。
http://msdn.microsoft.com/ja-jp/library/ms998274.aspx
引用返信 編集キー/
■32283 / inTopicNo.7)  Re[6]: テキストボックスで改行を行いたい
□投稿者/ やじゅ (926回)-(2009/02/04(Wed) 13:15:51)
やじゅ さんの Web サイト
> ■No32280 (ガロ さん) に返信

タグ<BR>ではなく、"\n"などを改行としてもらうという提案では駄目ですか?
"\n"なら、改行に変換する。

引用返信 編集キー/
■32284 / inTopicNo.8)  Re[7]: テキストボックスで改行を行いたい
□投稿者/ ガロ (4回)-(2009/02/04(Wed) 13:18:52)
そうなんですよね。。。。でもどうしてもタグでやりたいとの方針でして・・

No32283 (やじゅ さん) に返信
>>■No32280 (ガロ さん) に返信
>
> タグ<BR>ではなく、"\n"などを改行としてもらうという提案では駄目ですか?
> "\n"なら、改行に変換する。
>
引用返信 編集キー/
■32285 / inTopicNo.9)  Re[1]: テキストボックスで改行を行いたい
□投稿者/ はつね (938回)-(2009/02/04(Wed) 13:22:26)
はつね さんの Web サイト
No32275 (ガロ さん) に返信
> テキストボックスに改行<BR>を入力して、変更ボタンを押した際に<BR>を入れた場所で改行できるように編集したいのですが、

[変更]ボタンをクリックしたときのイベントプロシージャのなかで"<br>"を改行コードに
replaceしてあげればよいと思います。

しかし問題はそれよりも、タグの入力を許すかという事です。
タグの入力をゆるした場合、様々なセキュリティの温床となりえる可能性があるため、
ASP.NETではあえてタグ入力をHttpRequestValidationException例外として検出するよう
に初期設定されています。

MSDNライブラリ(いわゆるヘルプ)でこの例外について調べてみましたか?
調べればその対処方法も「メモ」として枠表示で強調されて危険性及び対策の必要性に
ついて書かれています。

発生した例外についてヘルプをみたり、また見たとしてもそれで解決できないという事
でしたら、書かれているようにいろいろな面で知識不足だと思います。

(1) セキュリティ上の懸念も含めて説明して、テキストボックスを複数行入力で実現
(2) クロスサイトスクリプティングなど代表的なWEB攻撃方法を勉強してから実装

のどちらかをされた方がいいと思います。
直ぐに実現できるのは(1)ですが、実現するまで時間はかかりますがWEBアプリ開発に携
わるなら(2)がお勧めです。
# (1)だとしても(2)の知識は絶対必要です。


させる事を強くお勧めします。

引用返信 編集キー/
■32286 / inTopicNo.10)  Re[8]: テキストボックスで改行を行いたい
□投稿者/ はつね (939回)-(2009/02/04(Wed) 13:26:49)
はつね さんの Web サイト
No32284 (ガロ さん) に返信
> そうなんですよね。。。。でもどうしてもタグでやりたいとの方針でして・・

不思議ですね。
普通の利用者ならわざわざタグ入力とか面倒なことはしたくない筈なのに。

ところで、brタグですが、HTMLだと「<br>」ですけれどXHTMLなら「<br />」ですよ。
ASP.NETでつくってるんだとおもうのですが、XHTMLじゃなくてHTMLでつくってるんですか?


引用返信 編集キー/
■32287 / inTopicNo.11)  Re[2]: テキストボックスで改行を行いたい
□投稿者/ ガロ (5回)-(2009/02/04(Wed) 13:34:24)
はつねさん、返信ありがとうございます。
イベントプロシージャで下記のコードを書きましたが、うまくいきませんでした。
コーディングがまずいのでしょうか?

this.TextBox_Comment.Text=this.TextBox_Comment.Text.Replace("<br>","<br>");

No32285 (はつね さん) に返信
> ■No32275 (ガロ さん) に返信
>>テキストボックスに改行<BR>を入力して、変更ボタンを押した際に<BR>を入れた場所で改行できるように編集したいのですが、
>
> [変更]ボタンをクリックしたときのイベントプロシージャのなかで"<br>"を改行コードに
> replaceしてあげればよいと思います。
>
> しかし問題はそれよりも、タグの入力を許すかという事です。
> タグの入力をゆるした場合、様々なセキュリティの温床となりえる可能性があるため、
> ASP.NETではあえてタグ入力をHttpRequestValidationException例外として検出するよう
> に初期設定されています。
>
> MSDNライブラリ(いわゆるヘルプ)でこの例外について調べてみましたか?
> 調べればその対処方法も「メモ」として枠表示で強調されて危険性及び対策の必要性に
> ついて書かれています。
>
> 発生した例外についてヘルプをみたり、また見たとしてもそれで解決できないという事
> でしたら、書かれているようにいろいろな面で知識不足だと思います。
>
> (1) セキュリティ上の懸念も含めて説明して、テキストボックスを複数行入力で実現
> (2) クロスサイトスクリプティングなど代表的なWEB攻撃方法を勉強してから実装
>
> のどちらかをされた方がいいと思います。
> 直ぐに実現できるのは(1)ですが、実現するまで時間はかかりますがWEBアプリ開発に携
> わるなら(2)がお勧めです。
> # (1)だとしても(2)の知識は絶対必要です。
>
>
> させる事を強くお勧めします。
>
引用返信 編集キー/
■32288 / inTopicNo.12)  Re[9]: テキストボックスで改行を行いたい
□投稿者/ ガロ (6回)-(2009/02/04(Wed) 13:36:06)
はつねさん、色々とありがとうございます。
はつねさんのおっしゃることは、ごもっともと自分でも思っているのですが。。。
作成はHTMLで行ってます。

No32286 (はつね さん) に返信
> ■No32284 (ガロ さん) に返信
>>そうなんですよね。。。。でもどうしてもタグでやりたいとの方針でして・・
>
> 不思議ですね。
> 普通の利用者ならわざわざタグ入力とか面倒なことはしたくない筈なのに。
>
> ところで、brタグですが、HTMLだと「<br>」ですけれどXHTMLなら「<br />」ですよ。
> ASP.NETでつくってるんだとおもうのですが、XHTMLじゃなくてHTMLでつくってるんですか?
>
>
引用返信 編集キー/
■32289 / inTopicNo.13)  Re[9]: テキストボックスで改行を行いたい
□投稿者/ Mr.T (309回)-(2009/02/04(Wed) 13:44:15)
Mr.Tです。

もし、タグじゃなくてもいいのであれば、適当な識別文字で改行を
入力してもらればいいんじゃないかと思う...


けども、少なくとも入力内容にタグを入れるのは、ユーザに使わせるためのWeb
アプリであるなら、イレギュラーという認識の方が強いです。

#太字にしたい、イタリックにしたい、ということならまだわかるけど
引用返信 編集キー/
■32290 / inTopicNo.14)  Re[10]: テキストボックスで改行を行いたい
□投稿者/ ガロ (7回)-(2009/02/04(Wed) 13:46:43)
そうなんですが、タグ入力で表現させたいみたいで・・・

No32289 (Mr.T さん) に返信
> Mr.Tです。
>
> もし、タグじゃなくてもいいのであれば、適当な識別文字で改行を
> 入力してもらればいいんじゃないかと思う...
>
>
> けども、少なくとも入力内容にタグを入れるのは、ユーザに使わせるためのWeb
> アプリであるなら、イレギュラーという認識の方が強いです。
>
> #太字にしたい、イタリックにしたい、ということならまだわかるけど
引用返信 編集キー/
■32300 / inTopicNo.15)  Re[11]: テキストボックスで改行を行いたい
□投稿者/ はつね (940回)-(2009/02/04(Wed) 14:54:13)
はつね さんの Web サイト
No32290 (ガロ さん) に返信
> そうなんですが、タグ入力で表現させたいみたいで・・・

そうすると<br>以外にもタグを許すの?
許すタグと許さないタグを決めて許すタグ以外はエラーにしないとセキュリティ的にNGですよ。
その辺りの取り決めはおわっていますか?


例外についてヘルプ調べてって書いたつもりなんだけれど、まだ調べていないと思うのですが、
なぜ、調べないのでしょうか。どこにあるか分からない?それともヘルプに書いてある事が分からない?


> 作成はHTMLで行ってます。
ASP.NETのデフォルトは「XHTML 1.0 Transitional」だけれどHTMLに変更したってことでしょうか。
HTMLで作っているつもりになっているってことはありませんか?



引用返信 編集キー/
■32309 / inTopicNo.16)  Re[12]: テキストボックスで改行を行いたい
□投稿者/ ガロ (8回)-(2009/02/04(Wed) 16:27:54)
はつねさん、ご助言ありがとうございます。

今回は<br>タグのみです。
テキストをHTMLエンコードして、下記のようにリプレースしてできました。
sb.Replace("&lt;br&gt;", "<br>");
sb.Replace("&lt;BR&gt;", "<BR>");

いろいろとありがとうございます。
大変勉強になりました。

No32300 (はつね さん) に返信
> ■No32290 (ガロ さん) に返信
>>そうなんですが、タグ入力で表現させたいみたいで・・・
>
> そうすると<br>以外にもタグを許すの?
> 許すタグと許さないタグを決めて許すタグ以外はエラーにしないとセキュリティ的にNGですよ。
> その辺りの取り決めはおわっていますか?
>
>
> 例外についてヘルプ調べてって書いたつもりなんだけれど、まだ調べていないと思うのですが、
> なぜ、調べないのでしょうか。どこにあるか分からない?それともヘルプに書いてある事が分からない?
>
>
>>作成はHTMLで行ってます。
> ASP.NETのデフォルトは「XHTML 1.0 Transitional」だけれどHTMLに変更したってことでしょうか。
> HTMLで作っているつもりになっているってことはありませんか?
>
>
>
解決済み
引用返信 編集キー/
■32310 / inTopicNo.17)  Re[13]: テキストボックスで改行を行いたい
□投稿者/ はつね (941回)-(2009/02/04(Wed) 16:55:23)
はつね さんの Web サイト
No32309 (ガロ さん) に返信
> はつねさん、ご助言ありがとうございます。
>
> 今回は<br>タグのみです。
> テキストをHTMLエンコードして、下記のようにリプレースしてできました。
> sb.Replace("&lt;br&gt;", "<br>");
> sb.Replace("&lt;BR&gt;", "<BR>");

Replaceではなくてhtmlエンコードしたなら、htmlデコードしてください。
また、br以外のタグについてのエラー処理も記載してください。

解決済み
引用返信 編集キー/
■32357 / inTopicNo.18)  Re[14]: テキストボックスで改行を行いたい
□投稿者/ ガロ (9回)-(2009/02/05(Thu) 13:20:42)
2009/02/05(Thu) 13:21:30 編集(投稿者)
2009/02/05(Thu) 13:21:21 編集(投稿者)

No32310 (はつね さん) に返信
> ■No32309 (ガロ さん) に返信
>>はつねさん、ご助言ありがとうございます。
>>
>>今回は<br>タグのみです。
>>テキストをHTMLエンコードして、下記のようにリプレースしてできました。
>>sb.Replace("&lt;br&gt;", "<br>");
>>sb.Replace("&lt;BR&gt;", "<BR>");
>
> Replaceではなくてhtmlエンコードしたなら、htmlデコードしてください。
> また、br以外のタグについてのエラー処理も記載してください。
>

なるほど、そこら辺が抜けてました。。。
ご助言ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -