总结
- xss 的原理
xss 是跨站脚本攻击,用户的数据(文章,访问的参数),被当作脚本执行,执行的地方有可能是 script 标签内,其他标签的属性,或者是富文本,最根本是数据变成了一个脚本
- xss 的防御
- 浏览器内置对反射性 xss 防御,对反射性 xss 进行拦截
- 对数据进行适当的转义,正文的转义,属性的转义和脚本中的转义,字符包括大于号,小于号,引号,以及&号
- 针对不能将 html 过滤或者转义的情况,比如富文件,富文本样式等,进行白名单过滤,对执行标签的属性是可以保留的
- 通过 csp,通过这种方式,限制哪些内容是可以执行的,哪些内容是不可执行的
- xss 防御需要注意的点
转义的时候要注意使用场景和范围,比如是 script 标签,需要转义大于号,小于号,如果是 html 属性,转义引号,如果是富文本,要通过白名单
- csrf 是什么
浏览器在访问服务器带上 cookie,第三方网站通过图片或者标签访问服务器也是带上 cookie,带上就知道身份,就利用身份操作,在这个过程中,是因为在第三方,所以用户不知情,最根本是,在用户不知情的情况下,带上用户身份,对目标网站发起请求
- csrf 的危害
盗用用户身份做的式,模拟发帖,盗用用户身份消费
- csrf 如何防御
- 不让第三方请求带 cookie,通过 same-site cookie 属性,进行设置
- 带上用户感知,比如带上验证码,每次请求目标网站,让用户都知情
- 带上 token,同时写入页面 cookie,第三方访问获得不到 cookie,所以请求不合法
- 判断 refer,如果 refer 是第三方网站,就是不合法
- cookie 的作用是什么
- 在浏览器存储数据,持续的存在,除非有效时间到了,不会随着浏览器的关闭而小时
- 用 cookie 存储,网站的配置,偏好是什么,之前做了什么个性化的选择,用户身份的标识
- localStoreage 是 H5 新增的,cookie 自动请求时带上,不需要手动发送,localStore 只能手动删除
- cookie 和 session 的区别
- session 的使用与用户相关,比如用户的登录态可以放在 cookie 中
- session 要有一个标识,在服务端实现的,session 要有一个标识,这个标识是放在 cookie 中,当开启 session,把标识存在 cookie,下次访问带上这个标识,就可以取到对应的 session,session 是基于 cookie 的存储实现的
- cookie 有哪些特性
- 容量比较小,通过 http 发送,js 可读取和写入
- 域名:因为有域名就不能跨域,路径:同一个域名 path 不一样,cookie 的读取也不一样,有效期:在指定时间有效,http-only:只能通过服务器读取,securiy:只能通过 https 访问,same-site,不让第三方请求带上 cookie
- 通过设置一个过期的时间就可以删除 cookie
- https 如何保持数据不可窃听
保证 web 安全的协议,通过 http 加了一个加密层(tsl/ssl),在客户端与服务端通信前通过一个加密协议进行加密,传输的时候第三方无法知道原始数据是什么
- https 如何保证中间人攻击
- 中间人攻击:通过中间人角色,充当客户端和服务端,拦截客户端通信,解密,加密后重新给服务端,也是加密的
- 服务器的证书是由 ca 签发,浏览器验证是否是 ca 发的证书,是就是合法的服务器,不是就是伪造的服务器
- 部署 https 的步骤
- 所以的内容都可以使用 https 访问
- 找 ca 生成一个证书,部署到服务器中
- sql 注入的原理
用户查询本应该是数据,但是数据中夹杂着 sql 语句,导致了查询语句的语义改变
- sql 的危害是什么
- 输出不让用户看到的信息
- 最严重的请求,整个数据的泄露,比如拖库
- nodejs 如何 sql 注入
- nodejs 可以通过可能有风险的数据转义,但是有些情况会被彻底
- orm 数据关系模型
- 参数化查询,把原本拼起来的 sql,变成 2 个部分,第一个部分是查询意图,第二部分就是出现的条件,条件值是什么
- 文件上传漏洞原理
上传文件后,文件再次访问被当作程序去执行,里面可能有恶意代码
- 防范上传漏洞
- 判断文件类型
- 判断文件头对不对
- 设置权限,让上传文件没有可执行权限,但是在 node 不适用
- 分离文件存储,文件只存储在存储文件的服务器
- 如何设计用户密码存储
- 对密码 hash 存储,多次 hash,加盐存储
- 如何设置登录过程
- 是不能明文密码对比和存储的
- 在登录过程中加密
- 如何不通过密码不被窃听
- 通过 https 加密,传输过程中不被窃听
- 明文不被窃听,通过客户端加密方式可以,但是登录态的保护是有限的

确认评论邮箱
邀请制评论