浏览器专题系列 - Web安全

来源:未知 作者:admin 发表于:2022-06-09 14:45  点击:
在现代网络中,安全相关的问题是非常繁杂的,种类颇多 这里只介绍Web开发中经常碰到的一些安全问题: SQL注入 XSS CSRF 点击劫持 中间人攻击 SQL注入 什么是SQL注入 后台人员使用用户输入的数

在现代网络中,安全相关的问题是非常繁杂的,种类颇多

这里只介绍Web开发中经常碰到的一些安全问题:

SQL注入

XSS

CSRF

点击劫持

中间人攻击

SQL注入

什么是SQL注入

后台人员使用用户输入的数据进行拼接组装SQL查询语句时,遇到恶意输入就会返回不应该返回的内容

简单示例

普通的查询语句

SELECT*FROMarticlesWHEREid=$id

1.客户端发送的正常请求

/api/articlres/article?id=12

拼接后的SQL

SELECT*FROMarticlesWHEREid=12

2.注入SQL发送的恶意请求

/api/articlres/article?id=1 or 1=1

这里的 是空格经过UrlEncode过后的内容

拼接后的sql

SELECT*FROMarticlesWHEREid=12or1=1

这样就扩大了查询数据的范围,导致查询异常或者返回原本不该返回的数据

如何防范

加入过滤和验证机制:

将参数的所有内容当做值,而不是当做字符串的一部分

使用正则表达式过滤传入的参数

检查传入内容是否包含非法的关键字

XSS

什么是XSS

XSS全称CrossSiteScripting,即跨站脚本攻击

攻击者可以将代码注入页面,然后可以进行一系列损害用户利益的事情

窃取Cookie

监听用户行为

修改DOM伪造登录表单

在页面中生成浮窗广告

恶意跳转

...

恶意代码未经过滤,与网站正常的代码混在一起,以至于浏览器无法分辨哪些脚本是可信的,导致恶意脚本被执行

XSS可以分为两类:持久型和非持久型

持久型

持久型也就是攻击的代码被服务端写入进数据库中,在页面加载的时候执行

常见于服务端渲染的时候出现

示例

Document

中间人攻击

什么是中间人攻击

中间人攻击是攻击方同时与服务端和客户端建立起了连接,并让对方认为连接是安全的

攻击者不仅能获得双方的通信信息,还能修改通信信息

场景举例:使用非对称加密传输的数据

中间人已经同时与客户端与服务端建立了链接

服务端下发公钥a1,中间人截获,然后下发自己的公钥b1

客户端接收到公钥b1,对传输的数据“你好”加密成“xxx”,然后发送给服务端

中间人收到数据“xxx”,用自己的私钥B解密获得内容“你好”,然后用截获的a1公钥加密内容“滚滚滚”成“yyy”,发送给服务端

服务端收到内容“yyy”用自己的私钥A解密得到“滚滚滚”的内容

在这个过程中,中间人不仅获取了用户传输的真实数据,还给服务的发送了错误的信息

如何防范

使用https

不要在公共Wi-Fi上发送敏感数据

使用权威机构的CA证书

参考

简书-sql注入基础原理(超详细)

MDN:Content-Security-Policy

阮一峰:CSP

原文首发于个人博客,专题系列会整理多篇,与大家一起学习,共同进步,如有错误,还请斧正

 

    有帮助
    (1)
    100%
    没帮助
    (0)
    0%
    购彩计划平台,购彩计划官网,购彩计划网址,购彩计划下载,购彩计划app,购彩计划开户,购彩计划投注,购彩计划购彩,购彩计划注册,购彩计划登录,购彩计划邀请码,购彩计划技巧,购彩计划手机版,购彩计划靠谱吗,购彩计划走势图,购彩计划开奖结果

    Powered by 购彩计划 @2018 RSS地图 HTML地图