重庆联通的网站建设,北京国家建设部网站首页,郑州专业做淘宝网站推广,北京网站定制开发哪些公司好对于后端而言#xff0c;我们常有“删库跑路”的说法#xff0c;这说明后端的操作对于信息系统而言通常影响很大#xff0c;可以轻易使信息系统宕机、崩溃#xff0c;直接导致项目失败。所以#xff0c;不要去逼后端程序员#xff01;
作为前端程序员#xff0c;我们似…对于后端而言我们常有“删库跑路”的说法这说明后端的操作对于信息系统而言通常影响很大可以轻易使信息系统宕机、崩溃直接导致项目失败。所以不要去逼后端程序员
作为前端程序员我们似乎自己也认为前端相比于后端代码的安全风险更低。一种常见的看法是前端随便整掀不起大波浪大不了是一些显示性问题
我们可以这样开玩笑但作为一名前端开发者良好的安全意识仍然是必需的事实上一些问题不仅仅作用于显示层面。更现实一些的层面是你如何确保你的代码运行稳定不会给公司、客户带来损失进而丢掉自己的饭碗
这不是危言耸听如果意识缺乏前端是有可能引发重大问题丢掉自己的饭碗的。本文试图分析前端究竟哪些操作可能存在重大风险以便对各位有所启发。
第一章 代码兼容性考虑——意识不足可能丢掉你的饭碗
有人可能认为代码兼容性问题即便出现影响也不大其理由是 并非开发者逻辑漏洞而是客户端、平台、设备千差万别所致大部分的用户是完全正常的代码兼容性问题无法得到100%的保障这么说实际上是低估了代码兼容性的影响。我们不否认许多兼容性对用户影响相对比较小或者说影响的用户数量很少又或者影响的是那些使用陈旧设备、客户端版本较低、相对不那么重要的客户。
但代码兼容性是有可能导致你丢掉饭碗的理由是 公司都是追求效益至上一旦因为兼容性问题影响到几分之一以上的用户这仍然算是极为严重的问题。比较典型的案例有ios平台不支持某属性安卓某版本以下的chrome不支持某属性、低于某版本的app不支持某jsbridge调用等直接导致客户端白屏。因此给开发者的建议是 对于js、正则、css不熟悉的写法一定需要查明兼容性明确影响范围尽量避开不熟悉的写法。譬如正则断言、findLastIndex这都是笔者身边真实发生过引发内部复盘的重大代码性事件。当然就影响而言一般css兼容性导致的影响会小很多。 一旦到这种层级内部复盘追责几乎是少不了的。影响到几分之一的用户对于公司的客户收入可能是影响很大的。、
第二章 业务兼容性考虑——老用户直接崩溃的重大事件
业务兼容性是一个极容易被程序员忽略的角度尤其前端程序员。更准确的讲这应该是产品经理、程序员共同考虑的问题。
如果产品经理在业务兼容性考虑上有所欠缺那么程序员也应该做适当考虑和提醒切忌不做思考的直接编码。
下面是一些典型的案例 业务层面要求修改分享链接这时程序员应该高度敏感这是可能导致存量用户崩溃的重大事件。这就是说虽然软件系统的所有展示都已经替换成了新链接但对于以前已经分享出去的老链接用户仍然会使用如果老链接直接不可用就会导致大量崩溃。用户完全过渡到接受新链接必然是需要一个过程不可能是一蹴而就的。这个事件在笔者身边曾多次发生过。业务层面需要调整表单字段。这时程序员应该意识到对于老用户而言他的一些字段已经存入数据库而在表单调整时他的数据可能会被读出自动填入表单但由于表单字段的调整有可能直接导致显示层面、流程层面的直接问题这也属于业务兼容性的重大事件。这种业务兼容性事件往往是影响到存量用户的使用流程影响不可谓不大。
第三章 业务流程把控——评审不细致可能丢掉你的饭碗、
听起来似乎评审和丢饭碗没有直接的关系这也就是个工作方式的问题但实际上在评审中如果不够细致可能导致技术上无法实现、项目延期就有可能引发严重后果了。 就笔者亲身经历而言在流程式交互设计时产品经理容易想当然的将不同流程放至不同页面又存在跨页面的大量判断和数据传递。这时一名专业的程序员应该斩钉截铁的驳斥产品经理的不合理设计。笔者曾经两度迁就这种不合理的设计导致项目存在延期风险、技术上过于复杂虽然最终完成了但仍让我心有余悸。、 所以如果你不能从专业的角度纠正产品经理的复杂设计那么你可能最终在实现上出现困难项目延期最终导致内部复盘责任会挂在你的身上。
第四章 区分环境意识——不良习惯可能会让你丢掉饭碗 在开发中为了效率或者方便测试往往会写定一些配置这些配置仅仅适用于开发、测试环境一旦上线则需要替换成真正的线上配置。 这就要求我们在上线之前一定要做好记录哪些是需要做替换的并在上线前替换一旦忘了替换则会引发线上问题。
譬如某购物软件给用户的推送消息变成了“测试”则可以想象开发人员可能是忘了替换一些开发中写死的配置这无疑会给用户带来不良影响。
第五章 权限配置——缺乏意识可能会直接导致上线失败 对于公司的服务器而言一般会配置权限因此一些开发和测试环境能跑通的情况到了正式环境机器上面由于权限限制就无法跑通了。 前端比较典型的有csp限制等这些限制可能使得正式环境上面脚本无法运行从而功能无法正常使用。 这要求开发者提早熟知公司服务器的权限限制提早与运维部门确定做好上线权限配置方案。
第六章 攻击防范——缺乏意识可能引发系统被入侵 前端一般需要防范xss攻击这要求代码中一定不能给恶意用户植入恶意代码的机会如果缺乏这种意识当公司遭遇攻击就离开丢掉饭碗不远了。当然远远不止xss攻击。另外公司的安全系统可能要求不能直接使用第三方脚本要使用则必须经过安全审查如果不经安全审查直接调用第三方脚本则可能是触发安全红线的行为可能会让你丢掉饭碗。除此之外公司可能有一些敏感信息不能暴露给用户这时需要做屏蔽或者替换处理。譬如敏感域名不能向外暴露。作为程序员一定需要时时有安全意识尤其对于小型企业安全上面可能不够完善这时程序员切记不能墨守成规不去防范安全上面需要反复深入研究。
第七章 卡死——死循环可能让你丢掉饭碗
前端虽然不直接操作用户数据库但在程序中会存在大量定时器、循环、遍历的场景这时程序员如果不能充分掌控自己代码的边界那么就很可能写出死循环这样的代码而一旦出现这种情况那么最轻也会内部复盘
对策是凡是循环、遍历、定时器都需要清晰掌控你的边界。 莫言前端足够安全稍有不慎仍然可能丢掉你的饭碗。
那么你还知道前端哪些会引发职场生存危机的事件呢欢迎留言讨论。