JavaScript를 사용하여 데이터를 인코딩하는 솔루션을 찾았습니다.이 데이터는 .NET에서 디코딩되며 jQuery가 필요하지 않습니다.
텍스트 영역에 boo ()를 호출하는 onchange를 포함하십시오.
<textarea id="userbox" onchange="boo();"></textarea>
마지막으로 .NET에서
string val = Server.UrlDecode(HiddenField1.Value);
나는 이것이 단방향이라는 것을 알고 있습니다. 양방향이 필요하다면 창의력을 가져야하지만 web.config를 편집 할 수없는 경우 해결책을 제공합니다
다음은 jQuery를 통해 사용 된 예제 I (MC9000)입니다.
$(document).ready(function () {
$("#txtHTML").change(function () {
var currentText = $("#txtHTML").text();
currentText = escape(currentText); // Escapes the HTML including quotations, etc
$("#hidHTML").val(currentText); // Set the hidden field
});
// Intercept the postback
$("#btnMyPostbackButton").click(function () {
$("#txtHTML").val(""); // Clear the textarea before POSTing
// If you don't clear it, it will give you
// the error due to the HTML in the textarea.
return true; // Post back
});
});
그리고 마크 업 :
<asp:HiddenField ID="hidHTML" runat="server" />
<textarea id="txtHTML"></textarea>
<asp:Button ID="btnMyPostbackButton" runat="server" Text="Post Form" />
이것은 잘 작동합니다. 해커가 JavaScript를 우회하여 게시하려고하면 오류가 표시됩니다. 이 모든 데이터를 데이터베이스에 인코딩 한 다음 서버 측에서 이스케이프 해제하고 다른 곳에서 표시하기 전에 공격을 구문 분석 및 확인할 수 있습니다.