为了账号安全,请及时绑定邮箱和手机立即绑定

Yii框架不得不说的故事—安全篇(3)

withy PHP开发工程师
难度中级
时长 3小时 1分
学习人数
综合评分9.77
55人评价 查看评价
9.8 内容实用
9.9 简洁易懂
9.6 逻辑清晰
  • YII::$app的作用是:获取得到E框架的应用主体,request请求组件
    查看全部
  • article下的post操作
    查看全部
  • url编码
    查看全部
  • xss攻击:跨站脚本攻击(cross site scripting)
    查看全部
    0 采集 收起 来源:xss攻击介绍

    2017-01-21

  • 网站攻击方式:xss攻击、csrf攻击、sql注入、文件上传漏洞
    查看全部
  • xss攻击:存储型攻击和反射性攻击,lexer解析。 csrf攻击:get型攻击和post型攻击。 sql注入攻击:PDO占位符。 文件上传漏洞:绕过类型检测和不要轻易相信用户提交文件。
    查看全部
    0 采集 收起 来源:安全篇回顾

    2017-01-03

  • emulatePrepare
    查看全部
  • emulate
    查看全部
  • <?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ /** * 通过PDO操作数据库的方式来防止sql注入 * 如果在数据库配置中'emulatePrepare'=>false,则占位符转义是在数据库端 * 运行下面代码,sql语句会分成两部分: * 向MySQL传递第一份数据:select * from users where name=? * 向MySQL传递第二份数据:zhangsan,会在MySQL进行转义,就算传过来的是中文和单引号,也会把单引号转义之后再执行sql语句,就防止了sql注入 */ public function actionTest1(){ $user = (new \yii\db\Query()) ->select('*') ->from('users') ->where('name=:name',[':name'=>'zhangsan']) ->one(); print_r($user); } }
    查看全部
  • 例子一: select * from users where name='zhangsan' and password='123456' name = zhansan' -- 那么查询语句就变成 select * from users where name='zhangsan' --' and password='123456' 在数据库中,--表示注释,则后面的会被忽略,如果这是管理员用户登录时的验证,则不需要密码就可以正常的登录到系统中 例子二: select * from users where name='zhangsan' and password='123456' name = '; drop table users; -- 那么查询语句就变成 select * from users where name=' '; drop table users; --' and password='123456' 如果运行,会把users表删除 例子三: 在一个论坛查找积分在60以下且关键字是youyiku的帖子,会运行以下sql语句 select * from articles where score<60 and title like '%youyiku%'; 如果查找关键字:' or 1=1 -- select * from articles where score<60 and title like '%' or 1=1 --%' 就突破了这个限制,会把所有帖子查找出来
    查看全部
  • 防范csrf: 1,验证码:比较有效,降低用户体验; 2,referer头,需要考虑正常访问没有referer头的情况;值是这次请求的URL,是哪个页面的请求 3,token, 响应请求时返回的防伪标志,服务器随机生成的token,浏览器接收到token,在请求时带上token,服务器对比,来检测有没有受到CSRF攻击
    查看全部
    0 采集 收起 来源:csrf攻击之防范

    2016-11-21

  • 伪造post请求 1、伪造form表单,要伪造相同表单控件,同样提交到原来的后台所处理页面 2、用户要先登录到原来form表单所在的系统 3、诱导用户来到我们的form表单,自动提交到目标服务器进行修改删除操作
    查看全部
  • get型的CSRF攻击: 1、该用户登录了某银行网站 2、构造了某银行转账URL:http://www.xxxbank.com/index.php?from=zhangsan&to=lisi&money=400 3、用户点击了这个链接,就会执行转账过程,完成一次CSRF攻击
    查看全部
  • <?php namespace app\controllers; use yii\web\Controller; class HelloController extends Controller{ public function actionTest1(){ \YII::$app->response->headers->add('X-XSS-Protection','0');//作用:告诉浏览器,如果待会传递过来的是一段js代码,浏览器不用进行一些过滤等的操作,这样浏览器就不会干扰代码的运行,js代码能够顺利执行,在实际工作中是不能添加的 $script = \YII::$app->request->get('script'); // echo $script; echo \yii\helpers\Html::encode($script);//把传过来的参数进行HTML实体编码 } public function actionTest2(){ \YII::$app->response->headers->add('X-XSS-Protection','0'); $script = \YII::$app->request->get('script'); echo \yii\helpers\HtmlPurifier::process($script);//这个函数使用了lexer技术,可以识别HTML里的JS、HTML、CSS三种代码,并把js过滤掉 } }
    查看全部
  • YII框架第一种防范xss(转码):Html::encode($str);内部其实调用了PHP的htmlspecialchars函数,把预定义的字符串转换成HTML实体
    查看全部

举报

0/150
提交
取消
课程须知
学习本门课程之前,建议先了解一下知识,会更有助于理解和掌握本门课程 1、掌握PHP基本的语言语法 2、了解sql语句和数据库 3、对互联网安全有一定的了解
老师告诉你能学到什么?
1、XSS、CSRF、SQL注入、文件上传漏洞等攻击方式。 2、YII框架中使用的lexer解析、cookie校验、pdo防范措施。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!