Format and remove 09.2.md spaces
This commit is contained in:
24
zh/09.2.md
24
zh/09.2.md
@@ -33,7 +33,7 @@
|
|||||||
接下来,让我们通过一个例子来巩固这些概念,请看下面这个表单
|
接下来,让我们通过一个例子来巩固这些概念,请看下面这个表单
|
||||||
```html
|
```html
|
||||||
|
|
||||||
<form action="/whoami" method="POST">
|
<form action="/whoami" method="POST">
|
||||||
我是谁:
|
我是谁:
|
||||||
<select name="name">
|
<select name="name">
|
||||||
<option value="astaxie">astaxie</option>
|
<option value="astaxie">astaxie</option>
|
||||||
@@ -41,18 +41,18 @@
|
|||||||
<option value="marry">marry</option>
|
<option value="marry">marry</option>
|
||||||
</select>
|
</select>
|
||||||
<input type="submit" />
|
<input type="submit" />
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
```
|
```
|
||||||
在处理这个表单的编程逻辑中,非常容易犯的错误是认为只能提交三个选择中的一个。其实攻击者可以模拟POST操作,递交`name=attack`这样的数据,所以在此时我们需要做类似白名单的处理
|
在处理这个表单的编程逻辑中,非常容易犯的错误是认为只能提交三个选择中的一个。其实攻击者可以模拟POST操作,递交`name=attack`这样的数据,所以在此时我们需要做类似白名单的处理
|
||||||
```Go
|
```Go
|
||||||
|
|
||||||
r.ParseForm()
|
r.ParseForm()
|
||||||
name := r.Form.Get("name")
|
name := r.Form.Get("name")
|
||||||
CleanMap := make(map[string]interface{}, 0)
|
CleanMap := make(map[string]interface{}, 0)
|
||||||
if name == "astaxie" || name == "herry" || name == "marry" {
|
if name == "astaxie" || name == "herry" || name == "marry" {
|
||||||
CleanMap["name"] = name
|
CleanMap["name"] = name
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
上面代码中我们初始化了一个CleanMap的变量,当判断获取的name是`astaxie`、`herry`、`marry`三个中的一个之后
|
上面代码中我们初始化了一个CleanMap的变量,当判断获取的name是`astaxie`、`herry`、`marry`三个中的一个之后
|
||||||
@@ -61,12 +61,12 @@
|
|||||||
上面的方法对于过滤一组已知的合法值的数据很有效,但是对于过滤有一组已知合法字符组成的数据时就没有什么帮助。例如,你可能需要一个用户名只能由字母及数字组成:
|
上面的方法对于过滤一组已知的合法值的数据很有效,但是对于过滤有一组已知合法字符组成的数据时就没有什么帮助。例如,你可能需要一个用户名只能由字母及数字组成:
|
||||||
```Go
|
```Go
|
||||||
|
|
||||||
r.ParseForm()
|
r.ParseForm()
|
||||||
username := r.Form.Get("username")
|
username := r.Form.Get("username")
|
||||||
CleanMap := make(map[string]interface{}, 0)
|
CleanMap := make(map[string]interface{}, 0)
|
||||||
if ok, _ := regexp.MatchString("^[a-zA-Z0-9]+$", username); ok {
|
if ok, _ := regexp.MatchString("^[a-zA-Z0-9]+$", username); ok {
|
||||||
CleanMap["username"] = username
|
CleanMap["username"] = username
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
## 总结
|
## 总结
|
||||||
|
|||||||
Reference in New Issue
Block a user