【安全牛学习笔记】CSRF跨站请求伪造攻击漏洞的原理及解决办法

本文深入探讨了CSRF(跨站请求伪造)攻击的原理,包括它如何利用浏览器的同源策略进行攻击。文章通过实例展示了攻击者如何在用户不知情的情况下执行操作,如发表内容或更改数据。文章还详细介绍了CSRF的危害,如伪造用户行为,以及两种主要的防御措施:检查请求的referer和使用随机化的令牌。同时,指出了这些防御策略的局限性,如HTTPS到HTTP转换和维护令牌的成本问题。最后,文章提到了Security+认证,作为提升信息安全技能的一个选择。
摘要由CSDN通过智能技术生成

CSRF跨站请求伪造攻击漏洞的原理及解决办法

CSRF,夸张请求伪造漏洞

漏洞的原理及修复方法

1.常见的触发场景

2.漏洞原理:浏览器同源策略

3.DEMO

4.漏洞危害

5.如何避免&修复漏洞

WEB

clinet server HTTP

GET POST

csrf漏洞

漏洞原理:

Server端接受到用户请求的时候,没有校验请求的来源(referer)是否是自己域的页面。

DEMO

浏览器同源策略:SOP

schema://hostname:post/url

origin.

http://www.baidu.com/

https//passport.baiud.com/login.jsp

js -> 非同源的资源

<img src="https//passport.baiud.com/a.jsp">

<script src>

CSRF漏洞的存在

---------------------------------------------------------------------------------

www-data@w:~/controller$ vim missionController.class.php

<?php

class missionController extends baseController{

    public $var;

    public function __construct(){

        parent::__construct();

        if($this->loged){

            return;

        }else{

            header('Location: /index/php');

            exit()

        }

    }

    public function feedAction(){

        $missionModel = new missionModel()'

        $feeds = $missionModel->get();

        $url = '/index.php?c=mission&a=feed';

        $username = $this->username;

        require('tpl/feed.tpl');

    }

    public function feedApiAction(){

        $callback = request('callback');

        $missionModel = new missionModel();

        $feeds = $missionModel->getMost($this->id);

        $feeds = json_encode(array('email'=>$this->username.'count'=>$feeds[0]));

        echo $callback.'('.$feeds.')';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值