• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:<>&などを保存する方法をおしえてください。)

<>&などの保存方法と注意点

このQ&Aのポイント
  • 保存する際に<>&などの特殊文字を含める場合、適切なエスケープ方法を使用する必要があります。
  • 保存する際に<>&などの特殊文字がエラーとなる原因は、SQLインジェクション攻撃の可能性があるため、注意が必要です。
  • 特殊文字を含むデータを保存する際は、パラメータ化クエリを使用してデータベースに安全に保存するようにしましょう。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

あぁ、これですかね。 http://d.hatena.ne.jp/yourvoice/20051005/1128532635 テキストボックスに html のタグっぽい物を入力するとエラーになるってやつ。 その aspx の html ソースの先頭にある <%@ Page Language="VB" ~ %> の中に ValidateRequest="false" てのを入れてみてください。 ただしこれは入力値のチェックを行わなくする宣言です。 下記ページ等を読んで安全性を確保するようにしてください。 http://msdn.microsoft.com/ja-jp/library/bb355989.aspx 今回のケースではパラメーター化しているのでザルではないと思いますが。

その他の回答 (3)

回答No.4

#3 です。 ValidateRequest="false" はすでに #2 さんが言ってますね。 もし当たりなら #2 さんにポイントをあげてください。私はいりません。

回答No.2

<>& ↑これを入力すると ※パターン1  DBの書き込みロジックでエラーが発生 ※パターン2  Post時にエラーが発生し、DBの書き込みロジックにまでたどり着いていない が考えられます。 #1のtemtecomai2さんが、DBの書き込みロジックを検証してくれているので、パターン2を疑います。 ASPXファイルの先頭に <%@ Page ~~~~~~ %> があると思います。 ValidateRequest="false" を追加してみてください。 それでやってみてどうなりますか?

epiko
質問者

お礼

ValidateRequest="false"をし 読み込みに TextComment.Text= System.Web.HttpUtility.HtmlEncode(dr("comment") で表示されました。ありがとうございます。

回答No.1

例えばどんな文字列で、どこの行でどんなエラーが出ますか? ASP.NET で追試してみましたが正常に投入できましたよ。 Dim sql As String = "INSERT INTO tableA(Name, Comment) VALUES(@Name, @Comment)" Dim conStr As String = "Data Source=hogePC;Initial Catalog=testDB;Persist Security Info=True;User ID=hogeUser;Password=hogePassword" Using con As New SqlConnection(conStr)  con.Open()  Using cmd1 As SqlCommand = con.CreateCommand()   cmd1.CommandType = Data.CommandType.Text   Try    With cmd1     .Parameters.Add("@Name", Data.SqlDbType.NVarChar)     .Parameters.Add("@Comment", Data.SqlDbType.NVarChar)     .Parameters("@Name").Value = NameTextBox.Text     .Parameters("@Comment").Value = CommentTextBox.Text     .CommandText = sql     .ExecuteNonQuery()    End With   Catch ex As Exception   Finally    con.Close()   End Try  End Using End Using

epiko
質問者

補足

回答ありがとうございます。 エラーになる内容なのですが <日本語>なら保存ができるのですが どうやら<123ABC>など<>の中を半角英数字にすると エラー:Sys.WebForms.PageRequestMasagerServerErrorrException: サーバーで要求を処理中に不明なエラーが発生しました。 サーバーから返された状態コード500 というエラーになります。 半角英数字が使いたいのですがどうしたらいいでしょうか? よろしくお願いします。

関連するQ&A

専門家に質問してみよう