web安全

web安全那些事
  1. XSS
  2. SQL注入
  3. CSRF

XSS【跨站脚本攻击】

介绍:允许攻击者将恶意代码植入到提供给其他用户使用的页面中。不同于大多数攻击(只涉及攻击者和受害者),XSS涉及三方(攻击者、客户端、web应用)。XSS的攻击目标是为了盗取存储在客户端的cookie或者用于识别客户端身份的敏感信息。一旦获取到合法的信息后,攻击者甚至可以假冒合法用户与网站进行交互。
分类:

  1. 存储型XSS,主要出现在让用户输入数据,如留言、评论、博客等。应用程序从数据库中查询数据,在页面显示出来,攻击者在相关页面输入恶意的脚本数据。用户浏览此类页面时可能就会收到攻击。
    流程:恶意用户的html输入web应用程序——进入数据库——web程序——用户浏览器
  2. 反射型XSS,主要做法是将脚本代码加入到URL地址请求参数里,请求参数进入程序后在页面直接输出,用户点击类似的恶意连接流就可能收到攻击。如

预防:【不相信用户的任何输入、过滤掉输入中的所有特殊字符】

  1. 过滤特殊字符【将用户所提供给的内容进行过滤,如script标签】
  2. 使用HTTP头指定类型,让浏览器解析javascript代码,而不会是html输出
w.Header().Set("Content-Type","text/javascript")

3.有httponly标记的cookie,只应该发送给服务端,不能通过document.cookie访问

SQL注入

介绍:攻击者向服务器提交恶意的SQL查询代码,程序在接收后错误的将攻击者的输入作为查询语句的一部分执行,导致查询逻辑修改。
举例:QR ‘1’ = ‘1’
本来查询的是 SELECT * FROM user WHERE username=’’ and password = ‘’,经过拼接后1=1是成立,自然就跳过验证了。
严重的输入;DROP TABLE user;–
相当于执行SELECT * FROM user WHERE username=‘admin’ and password=’’;drop table user;–’ 删除啊整张表
预防:

  1. 使用预编译语句,即便使用SQL伪造参数,到服务端的时候,也只是简单的字符串
  2. 对进入数据库的特殊字符(< * &)进行转义处理,或者编码转换
  3. 应用发布之前使用专业的SQL注入工具进行检测,及时修补被发现的SQL注入漏洞
  4. 避免网站打印出SQL错误信息,比如类型错误、字段不匹配等,把代码里的SQL语句暴漏出来

CSRF 【跨站请求伪造】

介绍:攻击者盗用身份,用你的名义发送恶意请求。比如以你的名义发送邮件、发送信息、盗取账号。甚至购买商品。。导致个人隐私暴漏以及财产安全。
产生过程:

  1. 登录受信任网站A,并在本地生成cookie
  2. 在不登出A的情况下,访问危险网站B
    预防:
  3. 表单里隐藏随机的token提交到后台验证,B网站拿不到A表单里的随机token
  4. Hash加密cookie中csrf_token值
  5. 给cookie设置SameSite,则cookie允许服务器要求cookie在跨站请求时不会被发送,从而可以阻止CSRF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值