- - PR -
TextBoxでのタグ文字のチェック方法(ASP.NET)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-01-23 15:38
現在、テキストボックスのエラーチェックを行なっているんですが、
"<br>"などというタグ文字列を登録しようとすると、 「危険な可能性のある Request.Form 値がクライアントから検出されました。」 とエラーになっていまいます。 クライアント側でサーバー送信前にチェックする方法は確認しているのですが、 サーバー側でチェックを行なう方法が解りません。 どうしてもサーバー側で行ないたいのですが、 それは無理なことなのでしょうか? ご教授のほど宜しくお願いいたいます。 | ||||
|
投稿日時: 2004-01-23 16:00
こんにちわ。
エラーページに >>構成セクションの validateRequest=false を設定することによって >>要求の検証を無効にで>>きます。 >>しかしこの場合、 >>アプリケーションですべての入力を明示的に確認することをお勧めします。 と表示されますよね。 上記記述の対応で可能ですよ。 <%@ Page language="c#" validateRequest=false (....以下略) %> ただし、タグ文字の通過を許すということは、 JSなんかも自由にテキストボックス等に入力出来てしまうので、 そのあたりの対応が必要になりそうですよね。 安直だと、"<script" の文字列はチェックではじくとかですかねw | ||||
|
投稿日時: 2004-01-23 16:02
Page.Errorイベントで拾って、任意のエラーメッセージ用HTMLを生成するという事は可能です。
| ||||
|
投稿日時: 2004-01-23 16:29
ご回答ありがとうございます。
<%@ Page language="c#" validateRequest=false (....以下略) %> を使用して、再度構築してみたいと思います。 #確かにJavaScript文字列は注意しないといけませんね。 どうもありがとうございました。 | ||||
|
投稿日時: 2004-01-23 16:41
ActiveXオブジェクトも危険。 また、HTML要素(というか、これからはXHTML?)は追加されるおそれがあります。そのため、"<[\w]"をはじいていると思われます。 | ||||
|
投稿日時: 2004-02-16 17:50
こんにちは。
NAOさんは解決されているようですが、質問させて下さい。 私はNAL-6295さんの方法でエラーページを設計しようと思っています。 セッションにエラー内容を格納して、エラーページに遷移・・・ という方法を考えたのですが、フレーム分割されたままエラー画面が 表示されてしまいました。 そこで、JavaScriptを使ったらどうだろうかと以下のコードを試したのですが、 作成したエラー画面には遷移せず、通常のエラー画面が表示されてしまいます。 Page_ErrorでJavaScriptは使えないということでしょうか? 使えないのなら、対処方法はあるでしょうか? どなたかご教授よろしくお願いします。 Private Sub Page_Error(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Error Dim objErr As Exception = Server.GetLastError.GetBaseException Session("ErrMsg") = "ページエラーが発生しました" Session("Explain") = objErr.Message.ToString Session("Method") = Request.Url.ToString 'エラー画面表示 Dim scriptstring As New StringBuilder With scriptstring .Append("<script language='javascript'>") .Append("parent.top.location.href='ErrFound.aspx'") .Append("</script>") End With If Not IsClientScriptBlockRegistered("clientscript") Then RegisterClientScriptBlock("clientsclipt", scriptstring.ToString) End If End Sub |
1