我所了解的XSS,CSRF,SQL注入

最近有做一些反思,曾经项目的一些反思。发现做的项目在安全方面是不合格的。也想到之前做的项目后端人员是不合格的。自己当然也是有待改进。

#XSS

含义:XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。

分类:

    1:反射性XSS,这种是在请求参数上添加脚本,然后后台有解析这个参数,并且没对恶意脚本过滤,以达到攻击的目的。这个相对存储型来说杀伤力小一点。因为很难影响到别的用户。

    2:存储型XSS,这种是对前端的接受参数全盘存储,并没有做任何恶意脚本的过滤,比如文章的评论,加入前后端都没对恶意脚本做过滤或者防范措施,那么含有这条评论的页面都会执行恶意脚本,小一点黑客可能只是做个恶作剧,大一点那就是偷偷地跑恶意脚本,盗取用户信息,做一些非法操作,后果无法想象。

对于这类攻击,应该最稳妥的方法是前后端都做一个脚本过滤,比如把<、>、"、'等特殊字符换成实体&gt; &lt;等;或者禁用某些标签以及属性。对于前端常见框架,比如vue,v-text是已经做了xss防范,然而v-html是存在风险的。所以应该减少使用v-html,然而某些场合必须使用没得办法,那这个时候就要对v-html='data'中的data做脚本过滤。从数据源,比如后台数据,后端人员应该把数据返回给前端时,应该要已经做好了过滤,前端在做一层过滤,我们实际生产者使用的是xss库https://jsxss.com/zh/index.html,这个比较成熟。原理的话就是我们上面说过的。

总结:前端提交做处理,后端入库做处理。前端显示做处理。设置HttpOnly(js无法操作cookie)

#CSRF

含义:CSRF攻击的全称是跨站请求伪造( Cross-Site Request Forgery),是一种对网站的恶意利用。

简单一点就是仿造身份,让服务端无法分辨真实用户,达到破坏的目的。比如A需要去B网站干一些坏事,但是A没有B网站的用户信息,所以他就没法做具体的事,但是他知道,在B网站转钱类似于https://B.com?money=1000&for=chasen;所以他可以在自己的网站Aweb上创建一张图片src='https://B.com?money=1000&for=chasen';然后把自己的网站https://Aweb.com链接发给B用户,诱导他点击,B经不住诱惑该死的点了一下,钱就转到我手中了。对于这样类似的操作,一般实际上会做一下一些操作:

1、验证请求头中的referer,如果是非本域的看做CSRF攻击处理,但是referer可以伪造,非安全

2、提交操作,尽量使用post强求,post构造成本大于get

3、将cookie设置为HttpOnly

4、增加token,不存在于cookies中,服务端验证token,如果请求中没有token或者token内容不正确,则认为是CSRF攻击而拒绝该请求。token可以作为请求参数,也可以作为自定义的请求头中。

5、校验token+用户ip地址。

#SQL注入

含义:就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令

前后端过滤和校验。详情参见https://www.cnblogs.com/cmt110/p/7569042.html

 

all:开发注意之,方能减少漏洞。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三木森森の

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值