项目中如何处理安全问题

  • Web 前端安全
    • 1. CSRF 跨站请求伪造
    • 2. XSS 跨站脚本攻击
    • 3. webshell 网站提权渗透
    • 4. 网页挂马与流量劫持
    • 5. 其他安全问题
    • 6. 总结

Web 前端安全

Web 前端安全主要包括如下几种:

  • 跨站脚本 XSS
  • 跨站请求伪造 CSRF
  • 界面操作劫持
  • webshell

1. CSRF 跨站请求伪造

它也成为 One Click Attack,或者 Session Riding,缩写为 CSRF,是一种对网站的恶意利用,相对来说更加难以防范。

原理

当用户正常登陆访问网站A时,网站A会给用户通过登陆验证,并产生正常访问的 Cookie。当用户在没有退出网站A的情况下,访问了网站B(可以理解为不安全的网站),那么 B 就会要求请求访问 A 的请求,这样A 就误以为是用户发送的请求进行处理,这就实现了对用户会话劫持的目的。

防范方式

  • 1,被黑客抓包,不会请求的地址,直接修改参数
  • 2,加入验证码,判断 reffer,这些参数前端都是可以修改的
  • 3,验证 Token 请求,每次动态刷新
  • 4,强验证码 + 动态 Token 请求

2. XSS 跨站脚本攻击

恶意攻击者往 Web 页面里插入恶意 script 代码,当用户浏览该页之时,嵌入其中 web 里面的 script 代码会被执行,从而达到恶意攻击用户的目的。

类型

  • 反射型:被动的非持久性XSS。诱骗用户点击短型URL,服务器解析后响应,在返回的响应内容中隐藏和嵌入攻击者的XSS代码,从而攻击用户。
  • 持久型:主动提交恶意数据到服务器,当用户请求后,服务器从数据库中查询数据并发给用户收到攻击。
  • DOM型:DOM 通过 html 一个结构执行事件脚本

防范方式

  • 输入转义
  • 输出转义
  • cookie http only
  • CSP:Content-Security-Policy:default-src-self

3. webshell 网站提权渗透

它是以 asp、PHP、jsp 或者 cgj 等网页文件形式存在的一种命令执行环境,由于 webshell 其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。

方式

  • 利用上传文件名的漏洞来实现,比如空格、空字节、apache 的解析漏洞或者老版本的 IIS
  • 利用上传文件HTTP请求伪造,比如 JavaScript 验证(禁用 JavaScript、修改后缀名)、后端检测文件头、MIME、双文件上传

防范

  • 控制目录:修改上传文件名、转移上传目录
  • 控制权限:让目录只读权限

4. 网页挂马与流量劫持

网页挂马指的是把一个木马程序上传到一个网站里面,然后用木马生成器生成一个网页挂马,在上传到空间里面,再加代码使得木马在打开网页时运行。

挂马方式

  • iframe
  • css 挂马
  • JavaScript 变形

5. 其他安全问题

  • cookie 安全、Flash 安全、DOM 渲染、字符集、跨域、原生态攻击、高级钓鱼、蠕虫思想等

6. 总结

我们平时开发要注意些什么?开发时要提防用户产生的内容,要对用户输入的信息进行层层检测要注意对用户的输出内容进行过滤(进行转义等)重要的内容记得要加密传输(无论是利用 https 也好,自己加密也好)。

get 与 post 请求,要严格遵守规范,不要混用,不要将一些危险的提交使用 jsonp 完成。

对于 URL 上携带的信息,要谨慎使用。心中时刻记着,自己的网站哪里可能有危险。

【Day10】项目中如何处理安全问题相关推荐

  1. java项目的事务怎么处理_java实际项目中如何处理分布式事务的

    分布式事务的解决方案(介绍其中三种) 两阶段提交协议(2PC) 为解决分布式系统的数据一致性问题出现了两阶段提交协议(2 Phase Commitment Protocol),两阶段提交由协调者和参与 ...

  2. 工作总结 项目中如何处理重复提交问题

    2019独角兽企业重金招聘Python工程师标准>>> 在我们的日常业务中,有一些业务我们会需要我们限制用户重复点击提交. 例如,在我们的订单系统中,我们应该防止用户重复点击下单,避 ...

  3. ajxs跨域 php_PHP项目中是如何处理Ajax请求与Ajax跨域的

    PHP项目中是如何处理Ajax请求与Ajax跨域的 发布时间:2020-12-14 16:35:47 来源:亿速云 阅读:98 这期内容当中小编将会给大家带来有关PHP项目中是如何处理Ajax请求与A ...

  4. 10.01.05专题 “如何处理大项目中各个PM之间的沟通效率“

    huner_wang-PMO-北京 说 (12:03):  对了,我发起个主题如何?大家帮我分析下怎么样? 毳戥亳_.NET_上海 说 (12:03):  什么主题? chuner_wang-PMO- ...

  5. Java 并发在项目中的使用场景

    1.并发编程的三个核心问题: (1)分工:所谓分工指的是如何高效地拆解任务并分配给线程 (2)同步:而同步指的是线程之间如何协作 (3)互斥:互斥则是保证同一时刻只允许一个线程访问共享资源 (4)应用 ...

  6. Mongo基础使用,以及在Express项目中使用Mongoose

    MongoDB的基本使用 MongoDB特点: 使用BSON存储数据 支持相对丰富的查询操作(相对其他nosql数据库) 支持索引 副本集(支持多个实例/多个服务器运行同个数据库) 分片(数据库水平扩 ...

  7. 在一个软件开发项目中进行实际日程安排的十二点提示(转)

    Laura Rose , QE Manager, Rational<?XML:NAMESPACE PREFIX = O /> <?XML:NAMESPACE PREFIX = ST1 ...

  8. 在网页项目中集成扫码枪设备,实现二维码扫码识别实战

    我寻寻觅觅,寻寻觅觅一个可以二次开发的扫码枪.然而,店小二总是告诉我:"这个--额--额--俺也不知道呢--".本文将一步一步实现在网页项目中集成扫码枪设备. 目录 1.项目背景 ...

  9. 项目中如何避免团队成员相互甩锅?

    见过一些团队,出了问题就甩锅,问题推来推去,半天没人解决,从而影响了项目的进度,伤害了团队的士气. 一.工作职责不明确 甩锅,这种情况大多是工作职责范围不明确导致的.那么我们如何确定工作职责范围呢? ...

最新文章

  1. Cnnot find System Java Compiler Ensure that you have installed a JDK
  2. 大厂白嫖拖垮开源!开源届码农:用户脾气大需求多还不给钱
  3. Linux 批量加用户
  4. adf4351_在ADF实体PK属性中使用MySQL自动增量PK列
  5. 四则运算 - java实现(叶尚文, 张鸿)
  6. Zabbix的web界面基本操作
  7. numpy笔记 linalg
  8. 云原生时代,Java还是Go?
  9. websocket实现单聊
  10. emplace与insert
  11. gcc编译c文件 python.h 未找到
  12. 【XAMPP】中mysql的admin页面打不开
  13. C++中list的各种使用
  14. jsp+ssh+mysql Java web学生考勤管理系统源码附视频指导运行教程
  15. 【深入浅出通信原理-学习笔记】天线技术
  16. cad计算机试题及答案,CAD与CAM试题及答案.doc
  17. 全国省市区三级数据库sql
  18. opencv将16位灰度图片转化为8位
  19. SQL Server 2000中的并行处理和执行计划中的位图运算符
  20. 【技能】使用纯CSS+html写出方向箭头,简单大方,好看

热门文章

  1. Python与数据库(2)Oracle
  2. argparse模块---解析命令行参数
  3. 【AI视野·今日CV 计算机视觉论文速览 第196篇】Wed, 12 May 2021
  4. 上机 文件读写器 c# 1614998685
  5. table表格 html 1128
  6. 控件的布局 1124
  7. 编译安装MongoDB以及安装PHP的mongodb扩展
  8. 2.7.3-YARN-获取debug命令:resourceManager+nodeManager
  9. LOJ#6283. 数列分块入门 7
  10. Windows 10半年成全球第二!中国悲剧了