我有一個頁面的Default.aspx
當用戶瀏覽該頁面 -獲得來自URL整個字符串包括非查詢字符串C#
www.mysite.com/default.aspx/? &#& emp = 1']]; alert(2); [['1
彈出警告。爲了防止這種攻擊,我想獲取瀏覽器中輸入的整個字符串,但無法完成。
[注意:正如你所看到的,後面的文字?不需要是查詢字符串。這裏是隨機字符。如果這是一個查詢字符串,我能得到,在代碼]
protected void Page_Load(object sender, EventArgs e)
{
string query = HttpContext.Current.Request.ServerVariables["URL"] +
HttpContext.Current.Request.ServerVariables["PATH_INFO"] +
HttpContext.Current.Request.ServerVariables["QUERY_STRING"];
}
在「查詢」我只得到/default.aspx/default.aspx/&
我怎樣才能在地址欄中鍵入整個字符串。
UPDATE:
HttpContext.Current.Request.Url.AbsoluteUri
給?&
HttpContext.Current.Request.Url.ToString()
給http://mysite/default.aspx/?&
這不是問題的重複,因爲我的問題有個字符,未查詢字符串,並在該解決方案問題沒有解決我的問題。謝謝。
解決方案: 可能幫助有類似問題的人。 解決的辦法是在客戶端處理此問題。我從來不知道#之後的部分沒有發送到服務器端。 非常棒的建議由業餘編程器&蒙上陰影。謝謝
如何獲取整個URL作爲字符串防止攻擊?無論如何,可能使用['Request.Url'](https://msdn.microsoft.com/en-us/library/system.web.httprequest.url(v = vs.110).aspx).. – user2864740
你嘗試過'Request.Url'嗎? – Irshad
類似於'HttpContext.Current.Request.Url.AbsoluteUri'? –