CSRF攻击是什么?如何通过原理图来防止它?

8 min read

当用户访问一个恶意网站时,它可以通过用户的浏览器发送一个请求,该请求会以用户的身份向一个受信任的网站发送请求。如果用户已经通过身份验证,受信任的网站会信任该请求并对其进行处理,这样恶意网站就可以通过跨站请求伪造 (CSRF) 攻击成功地执行该请求。以下是CSRF攻击的示意图:

            +-------------+           +---------------+
            |   用户浏览器  |           |   受信任网站   |
            +-------------+           +---------------+
                    |                            |
                    |              请求          |
                    | -------------------------->|
                    |                            |
                    |         验证用户身份         |
                    |                            |
                    |       用户已通过身份验证      |
                    | <--------------------------|
                    |                            |
+------------------|                            |-----------------+
|     恶意网站                         |                            |        收到验证请求        |
|     (欺诈)                          |                            |    (来自受信任的网站)    |
+-----------------|                            |------------------+
                    |              请求          |
                    | -------------------------->|
                    |                            |
                    |     中间人攻击                |
                    |                            |
                    |      请求使用用户身份      |
                    |                            |
                    | <--------------------------|
                    |            请求成功           |
                    |                            |