2

だから私はJsの投稿のパラメータとして文字列をasp.netサービスに送信しようとしていますが、問題があります。その前に、私はサーバーにアクセスできず、検証に触れることができません。外部クライアントから厳密にアクセスしています。この応答が返されます

System.Web.HttpRequestValidationException: A potentially dangerous Request.Form value was detected from the client (message="...t;img src='http://192.168.1...").
    at System.Web.HttpRequest.ValidateString(String value, String collectionKey, RequestValidationSource requestCollection)
    at System.Web.HttpRequest.ValidateNameValueCollection(NameValueCollection nvc, RequestValidationSource requestCollection)
    at System.Web.HttpRequest.get_Form()
    at System.Web.Services.Protocols.HtmlFormParameterReader.Read(HttpRequest request)
    at System.Web.Services.Protocols.HttpServerProtocol.ReadParameters()
    at System.Web.Services.Protocols.WebServiceHandler.CoreProcessRequest()

私が送信しているメッセージは次のとおりです。

xcvxzcvzxcvxcvzxcv< br /><img src='http://192.168.1.1:82/UserUploads/Images/65968/20130122020024996.jpg' alt='User Image' />

私が使用してエンコードするもの:

htmlEncode: function(str) {
        str = str.replace(/&/g, '&amp;');
        str = str.replace(/'/g, '&#39;');
        str = str.replace(/"/g, "&quot;");
        str = str.replace(/</g, '&lt;');
        str = str.replace(/>/g, '&gt;');
        return str;
    },

これは以下を生成します:

xcvxzcvzxcvxcvzxcv&lt; br /&gt;&lt;img src=&#39;http://192.168.1.1:82/UserUploads/Images/65968/20130122020802027.jpg&#39; alt=&#39;User Image&#39; /&gt;

いくつかのバリデーターを実行してエンコードを確認しましたが、問題の原因を特定できません。私の唯一の推測は、http://がjavascriptエラーに示されているように問題を引き起こしているということですが、よくわかりません。どんな助けや洞察も大歓迎です。

4

2 に答える 2

0

問題は'のエンコーディングでした。user409762によると、&#の組み合わせはasp.netで危険としてフラグが立てられています。

これで、私のエンコーディングは次のようになり、正常に機能します。

htmlEncode: function(str) {
    str = str.replace(/&/g, '&amp;');
    str = str.replace(/"/g, "&quot;");
    str = str.replace(/</g, '&lt;');
    str = str.replace(/>/g, '&gt;');
    return str;
},
于 2013-01-22T22:47:12.593 に答える
0

Jqueryを使用すると、このリンクのようにエンコードとデコードを実行できます。

function htmlEncode(value) {
    return $('<div/>').text(value).html();
}

function htmlDecode(value) {
    return $('<div/>').html(value).text();
}
于 2015-11-05T17:35:56.900 に答える