# 略過請求驗證

## 略過請求驗證

參考網址(<https://msdn.microsoft.com/en-us/library/hh882339.aspx>)

由於ASP.NET的form會檢查使用者輸入的值，避免惡意的使用者輸入JS的指令，來鑽漏洞，此方法稱為XSS攻擊。

若要避開這個驗證，建議要手動檢查使用者傳入的值。

在此就不多談其他，僅記錄我的實作方法和遇到的問題。

## 放在Web.config內

這是我寫的部分

```
<configuration>
  <!--程式碼放在這個區塊-->
  <location path ="dirName/fileName.aspx">
    <system.web>
      <httpRuntime requestValidationMode ="2.0"/>
    </system.web>
  </location>
  <!--程式碼放在這個區塊-->
</configuration>
```

由於參考資料 "2.0" 的雙引號為 ＂(全形)，所以出錯 另外參考資料的結尾為 "\</ location>"，這會導致出錯，"/" 和後面的tag之間不可以有空格。

## 放在dirName/fileName.aspx 此檔案的部分

```
<%@ Page Language="C#" validateRequest ="false">
```

僅在後面增加 validateRequest ="false" 就好了

題外話:利用上述方法，使得該頁面的輸入格可以輸入html tag，僅使用""也沒問題，但是在裡面打字，不管是設變數、console.log()、document.write()等等，都會被Chrome給擋掉，用Firefox開則可以正常顯示。

輸入字串

```
"<div id="abc123" style="color:green">123</div><script>var a = document.getElementById("abc123"); console.log(a);document.write("Hello World<br>");</script>"
```

顯示結果

&#x20;![](/files/-LmbdtOVc7FTk6ZM7IgL)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://brianwu.gitbook.io/brian/asp.net-web-form/lve-guo-qing-qiu-yan-zheng.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
