HTML 양식에서 추가 viewstate 변수를 제공하고 서버 페이지에서 ViewState를 비활성화해야합니다. 그러나 양쪽면에서 약간의 제어가 필요합니다.
양식 HTML :
<html><body> <form id='postForm' action='WebForm.aspx' method='POST'>
<input type='text' name='postData' value='base-64-encoded-value' />
<input type='hidden' name='__VIEWSTATE' value='' /> <!-- still need __VIEWSTATE, even empty one -->
</form>
</body></html>
참고 빈 __VIEWSTATE.
WebForm.aspx :
<%@ Page Language="C#" AutoEventWireup="true"
CodeBehind="WebForm.aspx.cs" Inherits="WebForm"
EnableEventValidation="False" EnableViewState="false" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="postForm" runat="server">
<asp:TextBox ID="postData" runat="server"></asp:TextBox>
<div>
</div>
</form>
</body>
</html>
주 EnableEventValidation="False", EnableViewState="false"
는 빈 뷰 상태에 대한 유효성 검사 오류를 방지합니다. 코드 뒤/상속 값이 정확하지 않습니다.
WebForm.cs :이 도움이 될 것입니다
public partial class WebForm : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string value = Encoding.Unicode.GetString(Convert.FromBase64String(this.postData.Text));
}
}
이 제프는 CSRF와 XSRF 공격에 그의 기사에 대한 경고 물건의 종류 아닌가? [http://www.codinghorror.com/blog/archives/001175.html] (http://www.codinghorror.com/blog/archives/001175.html) –
나는 아무도 이것을 언급하지 않았다는 것에 놀랐습니다. HTTP POST는 GET보다 안전하지 않습니다. 이런 식으로 자격 증명을 전달하는 것에 대해 권하고 싶습니다. 많은 아이디어와 정보가 여기에 있습니다 : http://stackoverflow.com/questions/1008668/how-secure-is-a-http-post –