前端如何丢掉你的饭碗?

对于后端而言,我们常有“删库跑路”的说法,这说明后端的操作对于信息系统而言通常影响很大,可以轻易使信息系统宕机、崩溃,直接导致项目失败。所以,不要去逼后端程序员!

作为前端程序员,我们似乎自己也认为前端相比于后端,代码的安全风险更低。一种常见的看法是,前端随便整,掀不起大波浪!大不了是一些显示性问题!

我们可以这样开玩笑,但作为一名前端开发者,良好的安全意识仍然是必需的,事实上一些问题不仅仅作用于显示层面。更现实一些的层面是,你如何确保你的代码运行稳定,不会给公司、客户带来损失,进而丢掉自己的饭碗?

这不是危言耸听,如果意识缺乏,前端是有可能引发重大问题,丢掉自己的饭碗的。本文试图分析,前端究竟哪些操作可能存在重大风险,以便对各位有所启发。

第一章 代码兼容性考虑——意识不足可能丢掉你的饭碗

有人可能认为,代码兼容性问题,即便出现影响也不大,其理由是:

  • 并非开发者逻辑漏洞,而是客户端、平台、设备千差万别所致
  • 大部分的用户是完全正常的
  • 代码兼容性问题无法得到100%的保障

这么说,实际上是低估了代码兼容性的影响。我们不否认,许多兼容性对用户影响相对比较小,或者说影响的用户数量很少,又或者影响的是那些使用陈旧设备、客户端版本较低、相对不那么重要的客户。

但,代码兼容性是有可能导致你丢掉饭碗的,理由是

公司都是追求效益至上,一旦因为兼容性问题影响到几分之一以上的用户,这仍然算是极为严重的问题。比较典型的案例有,ios平台不支持某属性,安卓某版本以下的chrome不支持某属性、低于某版本的app不支持某jsbridge调用等,直接导致客户端白屏。因此给开发者的建议是 ,对于js、正则、css不熟悉的写法,一定需要查明兼容性,明确影响范围,尽量避开不熟悉的写法。譬如,正则断言、findLastIndex这都是笔者身边真实发生过引发内部复盘的重大代码性事件。当然,就影响而言,一般css兼容性导致的影响会小很多。

一旦到这种层级,内部复盘追责几乎是少不了的。影响到几分之一的用户,对于公司的客户收入可能是影响很大的。、

第二章 业务兼容性考虑——老用户直接崩溃的重大事件

业务兼容性,是一个极容易被程序员忽略的角度,尤其前端程序员。更准确的讲,这应该是产品经理、程序员共同考虑的问题。

如果产品经理在业务兼容性考虑上有所欠缺,那么程序员也应该做适当考虑和提醒,切忌不做思考的直接编码。

下面是一些典型的案例:

  • 业务层面要求修改分享链接:这时程序员应该高度敏感,这是可能导致存量用户崩溃的重大事件。这就是说,虽然软件系统的所有展示都已经替换成了新链接,但对于以前已经分享出去的老链接,用户仍然会使用,如果老链接直接不可用,就会导致大量崩溃。用户完全过渡到接受新链接,必然是需要一个过程,不可能是一蹴而就的。这个事件在笔者身边曾多次发生过。
  • 业务层面需要调整表单字段。这时,程序员应该意识到,对于老用户而言,他的一些字段已经存入数据库,而在表单调整时,他的数据可能会被读出,自动填入表单,但由于表单字段的调整,有可能直接导致显示层面、流程层面的直接问题,这也属于业务兼容性的重大事件。

这种业务兼容性事件,往往是影响到存量用户的使用流程,影响不可谓不大。

第三章 业务流程把控——评审不细致可能丢掉你的饭碗、

听起来似乎评审和丢饭碗没有直接的关系,这也就是个工作方式的问题,但实际上,在评审中,如果不够细致,可能导致技术上无法实现、项目延期,就有可能引发严重后果了。

就笔者亲身经历而言,在流程式交互设计时,产品经理容易想当然的将不同流程放至不同页面,又存在跨页面的大量判断和数据传递。这时,一名专业的程序员应该斩钉截铁的驳斥产品经理的不合理设计。笔者曾经两度迁就这种不合理的设计,导致项目存在延期风险、技术上过于复杂,虽然最终完成了,但仍让我心有余悸。、

所以,如果你不能从专业的角度,纠正产品经理的复杂设计,那么你可能最终在实现上出现困难,项目延期,最终导致内部复盘,责任会挂在你的身上。

第四章 区分环境意识——不良习惯可能会让你丢掉饭碗

在开发中为了效率或者方便测试,往往会写定一些配置,这些配置仅仅适用于开发、测试环境,一旦上线,则需要替换成真正的线上配置。

这就要求我们在上线之前,一定要做好记录,哪些是需要做替换的,并在上线前替换,一旦忘了替换,则会引发线上问题。

譬如,某购物软件给用户的推送消息变成了“测试”,则可以想象开发人员可能是忘了替换一些开发中写死的配置,这无疑会给用户带来不良影响。

第五章 权限配置——缺乏意识可能会直接导致上线失败

 对于公司的服务器而言,一般会配置权限,因此一些开发和测试环境能跑通的情况,到了正式环境机器上面,由于权限限制,就无法跑通了。

前端比较典型的有csp限制等,这些限制可能使得正式环境上面脚本无法运行,从而功能无法正常使用。

这要求开发者提早熟知公司服务器的权限限制,提早与运维部门确定,做好上线权限配置方案。

第六章 攻击防范——缺乏意识可能引发系统被入侵

  • 前端一般需要防范xss攻击,这要求代码中一定不能给恶意用户植入恶意代码的机会,如果缺乏这种意识,当公司遭遇攻击,就离开丢掉饭碗不远了。当然,远远不止xss攻击。
  • 另外,公司的安全系统可能要求不能直接使用第三方脚本,要使用则必须经过安全审查,如果不经安全审查直接调用第三方脚本,则可能是触发安全红线的行为,可能会让你丢掉饭碗。
  • 除此之外,公司可能有一些敏感信息不能暴露给用户,这时需要做屏蔽或者替换处理。譬如,敏感域名不能向外暴露。

作为程序员,一定需要时时有安全意识,尤其对于小型企业,安全上面可能不够完善,这时程序员切记不能墨守成规不去防范,安全上面需要反复深入研究。

第七章 卡死——死循环可能让你丢掉饭碗

前端虽然不直接操作用户数据库,但在程序中会存在大量定时器、循环、遍历的场景,这时,程序员如果不能充分掌控自己代码的边界,那么就很可能写出死循环这样的代码,而一旦出现这种情况,那么最轻也会内部复盘!

对策是,凡是循环、遍历、定时器都需要清晰掌控你的边界。

莫言前端足够安全,稍有不慎,仍然可能丢掉你的饭碗。

那么,你还知道前端哪些会引发职场生存危机的事件呢,欢迎留言讨论。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/1790.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

学习系统编程No.6【进程控制】

引言: 北京时间:2023/3/19/15:16,刚刚睡醒,我发现我真的能睡,早上将反向迭代器剩下的一些知识学完,发现,昨天那篇博客发的有些匆忙了,最后有关反向迭代器的知识都没有把精华部分给分…

使用旧电脑玩Linux

今天给大家讲讲使用旧电脑玩Linux,大家应该都知道旧电脑的硬件一般比较落后,特别是一些非常老的电脑,目前还在使用的是机械硬盘,如是要跑windows可想而知,但是Linux系统对硬件性能的要求可比windows低的多了&#xff0…

常用React Hooks大合集(二)

React Hooks useRef useRef返回一个ref对象,返回的ref对象再组件的整个生命周期保持不变。 最常用的ref是两种用法: 用法一:引入DOM(或者组件,但是需要是class组件)元素;用法二:保…

C#中的DataGridView中添加按钮并操作数据

背景:最近在项目中有需求需要在DataGridView中添加“删除”、“修改”按钮,用来对数据的操作以及显示。 在DataGridView中显示需要的按钮 首先在DataGridView中添加需要的列,此列是用来存放按钮的。 然后在代码中“画”按钮。 if (e.Column…

JVM监控搭建

文章目录JVM监控搭建整体架构JolokiaTelegrafInfluxdbGrafanaJVM监控搭建 整体架构 JVM 的各种内存信息,会通过 JMX 接口进行暴露。 Jolokia 组件负责把 JMX 信息翻译成容易读取的 HTTP 请求。Telegraf 组件作为一个通用的监控 agent,和 JVM 进程部署在…

ChatGPT推出第四代GPT-4!不仅能聊天,还可以图片创作!

3月15日凌晨,OpenAI震撼发布了多模态预训练大模型 GPT-4。 根据官网发布的通告可以知道,GPT-4 实现了以下几个方面的飞跃式提升:强大的AI创作识图能力;文字输入限制提升至 2.5 万字;回答准确性显著提高;能够…

【基础算法】数组相关题目

系列综述: 💞目的:本系列是个人整理为了秋招算法的,整理期间苛求每个知识点,平衡理解简易度与深入程度。 🥰来源:材料主要源于代码随想录进行的,每个算法代码参考leetcode高赞回答和…

DJ2-4 进程同步(第一节课)

目录 2.4.1 进程同步的基本概念 1. 两种形式的制约关系 2. 临界资源(critical resource) 3. 生产者-消费者问题 4. 临界区(critical section) 5. 同步机制应遵循的规则 2.4.2 硬件同步机制 1. 关中断 2. Test-and-Set …

人工智能前沿知识

本来想着初试完学习一下李沐大神的《动手学深度学习》这本书的,但是时间仓促,完全来不及。只能先自行了解一些知识,之后再深入了解。 这里为面试应答,问了chatgpt一些关于AI前沿的知识: 还需要再了解一番:…

网站经常被DDOS攻击的原因有哪些

过去这几年,互联网创业热潮非常火,几乎所有行业都向互联网转型。很多互联网公司都会经历被 DDoS 攻击,导致网站服务瘫痪,用户流失以及公司信用度的负面影响。什么是 DDOS 攻击呢?DDOS 攻击是通过控制大量僵尸网络向服务…

人工智能的几个研究方向

人工智能主要研究内容是:分布式人工智能与多智能主体系统、人工思维模型、知识系统、知识发现与数据挖掘、遗传与演化计算、人工生命、人工智能应用等等。 其中热门研究有以下几种。 一、计算机视觉 就包括图像识别,视频识别,具体应用有人…

Python 基础教程【3】:字符串、列表、元组

本文已收录于专栏🌻《Python 基础》文章目录🌕1、字符串🥝1.1 字符串基本操作🍊1.1.1 字符串创建🍊1.1.2 字符串元素读取🍊1.1.3 字符串分片🍊1.1.4 连接和重复🍊1.1.5 关系运算&…

Java序列化与反序列化

优秀博文:IT-BLOG-CN 序列化:把对象转换为字节序列存储于磁盘或者进行网络传输的过程称为对象的序列化。 反序列化:把磁盘或网络节点上的字节序列恢复到对象的过程称为对象的反序列化。 一、序列化对象 【1】必须实现序列化接口Serializabl…

RK3568平台开发系列讲解(驱动基础篇)I2C协议介绍

🚀返回专栏总目录 文章目录 一、I2C基本读写过程二、通讯的起始和停止信号三、数据有效性四、地址及数据方向五、响应沉淀、分享、成长,让自己和他人都能有所收获!😄 📢I2C的协议定义了通讯的起始和停止信号、数据有效性、响应、仲裁、时钟同步和地址广播等环节。 一、…

《网络安全入门到精通》 - 2.1 - Windows基础 - DOS命令Windows防火墙Windows共享文件

「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「订阅专栏」:此文章已录入专栏《网络安全入门到精通》 Windows基础一、DOS命令1、目录文件操作dir 列出目录文件cd 切换目录md 创建目录rd 删除目录move 移动文件或目…

4.网络爬虫—Post请求(实战演示)

网络爬虫—Post请求实战演示POST请求GET请求POST请求和GET请求的区别获取二进制数据爬[百度官网](https://www.baidu.com/)logo实战发送post请求百度翻译实战使用session发送请求模拟登录17k小说网常见问题前言: 📝​📝​此专栏文章是专门针对…

数据结构笔记

文章目录第一章:数据结构与算法第二章:稀疏数组和队列一 、稀疏sparsearray 数组(一)案例需求(二)稀疏数组介绍(三)应用实列(四)代码实现二、队列&#xff08…

动态规划算法

一、前言动态规划是一种常用的算法,在算法领域十分重要,但对于新手来说,理解起来有一定的挑战性,这篇博客将明确步骤来一步一步讲解动态规划到底该如何理解与运用。二、解析动态规划算法1.特点①把原来的问题分解成了【要点相同】…

【Linux】软件包管理器 yum

什么是软件包和软件包管理器 在 Linux 下需要安装软件时, 最原始的办法就是下载到程序的源代码, 进行编译得到可执行程序。但是这样太麻烦了,所以有些人就把一些常用的软件提前编译好, 做成软件包 ( 就相当于windows上的软件安装程序)放在服…

Spring框架中IOC和DI详解

Spring框架学习一—IOC和DI 来源黑马Spring课程,觉得挺好的 目录 文章目录Spring框架学习一---IOC和DI目录学习目标第一章 Spring概述1、为什么要学习spring?2、Spring概述【了解】【1】Spring是什么【2】Spring发展历程【3】Spring优势【4】Spring体系…
最新文章