web开发常见安全问题

XSS注入

  1. 概念

    XSS又叫CSS(Cross Site Script),跨站脚本攻击。指的是恶意攻击者往web页面里插入恶意脚本代码,而程序对于用户输入内容没有过滤,当用户浏览时,嵌入的脚本代码被执行,达到恶意攻击用户的目的。

  2. 分类

    XSS漏洞可分为反射型XSS和存储型XSS。反射型XSS是直接将恶意代码的执行结果反射给浏览器,而存储型XSS是将恶意代码存储在服务器端,再输出给前端页面。任何用户访问该页面都会受到攻击。

  3. 危害

    • 窃取用户cookie
    • 网络钓鱼
    • 盗取各类用户帐号
    • 劫持用户浏览器
    • 进行网页挂马
  4. 修复方法

    • htmlspecialchars() 将<>转换为实体,防止浏览器解析为html元素。

    • addslashes() 双引号前加反斜杠

CSRF漏洞

  1. 概念

    跨站请求伪造(cross site request forgery)是一种利用用户的身份对网站进行某种操作的漏洞,用户自己没有察觉,但是操作请求是以用户身份发出的。在登录A网站后,访问不受信任的网站B,而该站点包含了对A站点的接口请求代码,这个请求以用户的身份发出。

  2. 危害

    以用户身份在用户不知请的情况下执行用户操作:修改个人资料、银行转账、等

  3. 例子

    举例说明:

    /**
    程序代码为changePasswd.php,getUser()为获取当前用户标识,将收到的两个密码进行替换,攻击者伪造攻击代码:
    <img src="http://server/changePasswd.php?action=1&passwd_new=123&">,
    将该代码嵌入一个HTML页面,只有登录用户访问该页面,密码就会被修改
    <?php
    if($_GET['action']==1){
        $new_passwd = md5($_GET['passwd_new']);
        $sql = "update user set passwd='$new_passwd' where user='".getUser()."'"";
        $result = mysql_query($sql);
    }
  4. 修复方法

    • 请求使用POST方式提交
    • 在表单和服务器session中保存token,对请求进行token校验。

mysql注入

  1. 概念

    用户传入的参数,没有经过校验,拼接mysql语句进行执行,造成数据库的数据泄露。根据参数分类,可分为数字型和字符型。

  2. 危害

    • 数据库的数据泄露
    • 黑客获取数据库的控制权
  3. 修复方法

    • 数字型参数进行强制数字转换
    • 字符型,通过mysqli_real_escape_string()过滤
    • 数据库操作通过PDO等方式操作。
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值