服务端开发过程中常见的安全性问题

身份验证与授权

密码加密

加密传输

Https

DDoS

SQL注入

SQL注入的本质:数据和代码未分离,即数据当做了代码来执行。

解决办法

  • 检查输入的数据是否符合预期,不能直接放入数据库中进行查询
  • 字符串长度验证
  • mybatis具有防sql注入的方式
    • 使用#{}代替${}
    • mybatis会对使用#的数据当成一个字符串,会自动加一个双引号

跨站脚本

XSS

Cross Site Scripting。通过存在安全漏洞的Web网站注册用户的浏览器内运行非法的HTML标签或JavaScript进行的一种攻击。
原理是恶意攻击者往 Web 页面里插入恶意可执行网页脚本代码,当用户浏览该页之时,嵌入其中 Web 里面的脚本代码会被执行,从而可以达到攻击者盗取用户信息或其他侵犯用户安全隐私的目的。

类型

  1. 非持久型 XSS(反射型 XSS )

通过给别人发送带有恶意脚本代码参数的 URL,当 URL 地址被打开时,特有的恶意代码参数被 HTML 解析、执行。

一些浏览器如Chrome其内置了一些XSS过滤器,可以防止大部分反射型XSS攻击。

特征:

  • 即时性,不经过服务器存储,直接通过 HTTP 的 GET 和 POST 请求就能完成一次攻击
  • 攻击者需要诱骗点击,必须要通过用户点击链接才能发起
  • 反馈率低,所以较难发现和响应修复
  • 盗取用户敏感保密信息
  1. 持久型 XSS(存储型 XSS)
    持久型 XSS 漏洞,一般存在于 Form 表单提交等交互功能,如文章留言,提交文本信息等,黑客利用的 XSS 漏洞,将内容经正常功能提交进入数据库持久保存,当前端页面获得后端从数据库中读出的注入代码时,恰好将其渲染执行。

特征:

  • POST 请求提交表单后端没做转义直接入库。
  • 后端从数据库中取出数据没做转义直接输出给前端。
  • 前端拿到后端数据没做转义直接渲染成 DOM。

解决办法

  1. 非持久型 XSS(反射型 XSS )
  • Web 页面渲染的所有内容或者渲染的数据都必须来自于服务端。
  • 尽量不要从 URL,document.referrer,document.forms 等这种 DOM API 中获取数据直接渲染。
  • 尽量不要使用 eval, new Function(),document.write(),document.writeln(),window.setInterval(),window.setTimeout(),innerHTML,document.createElement() 等可执行字符串的方法。

CSRF

CSRF(Cross Site Request Forgery),即跨站请求伪造。它利用用户已登录的身份,在用户毫不知情的情况下,以用户的名义完成非法操作。

session劫持

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值