9.2 确保输入过滤
作者:互联网
过滤用户数据是Web应用安全的基础。它是验证数据合法性的过程。通过对所有的输入数据进行过滤,可以避免恶意数据在程序中被误信或误用。大多数Web应用的漏洞都是因为没有对用户输入的数据进行恰当过滤所引起的。
我们介绍的过滤数据分成三个步骤:
- 1、识别数据,搞清楚需要过滤的数据来自于哪里
- 2、过滤数据,弄明白我们需要什么样的数据
- 3、区分已过滤及被污染数据,如果存在攻击数据那么保证过滤之后可以让我们使用更安全的数据
识别数据
“识别数据”作为第一步是因为在你不知道“数据是什么,它来自于哪里”的前提下,你也就不能正确地过滤它。这里的数据是指所有源自非代码内部提供的数据。例如:所有来自客户端的数据,但客户端并不是唯一的外部数据源,数据库和第三方提供的接口数据等也可以是外部数据源。
由用户输入的数据我们通过Go非常容易识别,Go通过r.ParseForm
之后,把用户POST和GET的数据全部放在了r.Form
里面。其它的输入要难识别得多,例如,r.Header
中的很多元素是由客户端所操纵的。常常很难确认其中的哪些元素组成了输入,所以,最好的方法是把里面所有的数据都看成是用户输入。(例如r.Header.Get("Accept-Charset")
这样的也看做是用户输入,虽然这些大多数是浏览器操纵的)
过滤数据
在知道数据来源之后,就可以过滤它了
标签:用户,过滤,9.2,识别,数据,输入,客户端 来源: https://blog.csdn.net/Kaitiren/article/details/113947971