js安全详解

CSRF(Cross-site request forgery:跨站请求伪造)攻击。
CSRF的用途:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账…造成的问题包括:个人隐私泄露以及财产安全。

可以这么理解CSRF:攻击者盗用了你的身份,以你的名义发送恶意请求。
某天你登录了你的银行账户操作XXX,那么在你访问某些非法网站的时候,如果没有同源策略,它向银行的接口发起请求(浏览器会自动带上相关的cookie),假设银行的服务端是根据cookie来判断登录状态的话,非法网站就相当于登录了你的银行账户…

CSRF攻击本质是源于WEB的隐式身份验证机制!WEB的身份验证机制虽然可以保证一个请求是来自于某个用户的浏览器,但却无法保证该请求是用户批准发送的

解决方法:
1》通过hash,来认证这是用户发送的请求,可以被XSS攻击
2》利用验证码,可以完全杜绝CSPF攻击
3》 验证请求头中的的referer属性,禁止来自第三方网站的请求
4》可用token,在后端生成一个随机数,一份放在cookie中,一份存在浏览器中,后台控制只有这两个数相等的时候才可以进行留言等 操作。缺点:如果用户在浏览器中对该网站打开多个界面,会只有最后一个页面能有效的操作
5》不同的表单包含一个不同的伪随机值,但是这种方法必须注意并行会话的兼容。即每次表单被装入时站点生成一个伪随机值来覆盖以前的伪随机值用户只能成功地提交他最后打开的表单,因为所有其他的表单都含有非法的伪随机值。必须小心操作以确保CSRF保护措施不会影响选项卡式的浏览或者利用多个浏览器窗口浏览一个站点。

XSS(Cross Site Scripting):跨站脚本攻击,共三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS

XSS的应用:
挂马。
盗取用户Cookie、账号等信息。
DOS(拒绝服务)客户端浏览器。
前端JS挖矿。
钓鱼攻击,高级的钓鱼技巧。
删除目标文章、恶意篡改数据、嫁祸。
劫持用户Web行为,甚至进一步渗透内网。
爆发Web2.0蠕虫。
蠕虫式的DDoS攻击。
蠕虫式挂马攻击、刷广告、刷浏量、破坏网上数据

1.反射性XSS:发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型XSS。它的特点:是非持久化,必须用户点击带有特定参数的链接才能引起。

2.存储型XSS:存储型XSS和反射型XSS的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码

最典型的例子是留言板XSS,用户提交一条包含XSS代码的留言存储到数据库,目标用户查看留言板时,那些留言的内容会从数据库查询出来并显示,浏览器发现有XSS代码,就当做正常的HTML与Js解析执行,于是触发了XSS攻击。

3.DOM XSS:DOM XSS和反射型XSS、存储型XSS的差别在于DOM XSS的代码并不需要服务器参与,触发XSS靠的是浏览器端的DOM解析,完全是客户端的事情。

解决方法:
1.转义,对敏感字符转义,把 > 字符转为 ‘>’ < 转为‘<’
2.过滤,过滤敏感标签或标签属性
3.SQL注入:输入参数未经过滤,然后直接拼接到sql语句当中,解析执行,达到预想之外的效果称为sql攻击

sql的防御:

  1. 字符串长度验证,仅接受指定长度范围内的变量值。sql注入脚本必然会大大增加输入变量的长度,通过长度限制,比如用户名长度为 8 到 20 个字符之间,超过就判定为无效值。

  2. 对单引号和双"-"、下划线、百分号等sql注释符号进行转义

  3. 对接收的参数进行类型格式化,如id参数值获取后,进行int类型转换

  4. 永远不要使用动态拼装SQL,推荐使用参数化的SQL或者直接使用存储过程进行数据查询存取。sql注入最主要的攻击对象就是动态拼装的SQL,通过参数化查询可以极大减少SQL注入的风险。

DDOS攻击的防御:

①限制上传文件的大小,防止由于内存、磁盘耗尽造成的拒绝服务攻击。

②可以配置web server允许的最大POST大小。

③可以在代码层面获取上传文件的大小,根据文件类型的不同进行进一步的过滤。

上传漏洞的防御:
1.限制文件上传的类型
2.限制文件上传的大小

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值