停止推送JavaScript

2021-03-02 19:53:01

我要直截了当地说:前端开发人员正在打破互联网!他们遭受了某种形式的集体精神病困扰,在这种精神病中,即使最起码的独立思考也变得如此困难,以至于您认为自己正在与僵尸打交道。它甚至没有资格作为盲目追随的一种形式,因为没人在领导。似乎每个人都在疯狂奔波。

如果您将JavaScript作为网站正常运行的依赖项,则最好提供一些非常令人惊奇的特殊内容,否则您的网站将彻底崩溃!

自1998年以来,我一直担任后端和前端开发人员,而我从未使Web应用程序依赖JavaScript。这适用于网上商店,博客系统,大型CMS安装以及Intranet管理实用程序等。在我被聘为现有团队的顾问的情况下,我要做的第一件事是消除对JavaScript的任何依赖。

相反,客户从来没有遇到过Web应用程序出现问题的情况,相反。删除JavaScript可提高应用程序的加载速度,删除多个与安全性相关的攻击媒介,并极大地改善了客户隐私问题和可用性。

如果您知道自己在做什么,则可以模拟JavaScript可以仅使用后端技术提供的许多改进的UI体验。大大提高的性能,安全性和隐私性远远超过了您可能会遇到的JavaScript功能丧失。

问题在于本质上不需要任何形式的JavaScript来提供其所服务内容的网站。事实是,大多数前端开发人员不是针对具有特定JavaScript要求的利基市场开发应用程序,而是开发常规网站,而这些应用程序最终只是纯简单的HTML。您还记得什么纯HTML是正确的吗?

即使实际上本质上确实需要一定数量JavaScript的大多数利基产品,如果它们至少是选择加入而不是根本不起作用,它们通常仍会有些用处。

另外,您见过盲人如何使用互联网吗?如果不是,您需要对此进行演示!特别是如果您是前端开发人员。您可能会认为使用Internet的盲人是少数,但是事实是,有多少残疾人使用Internet无关紧要,Internet适用于每个人,以及何时正确设计了网站和编码,残疾人可以使用它们。当前,大多数网站都是在开发时不考虑可访问性,这使得某些人难以使用或无法使用它们,而JavaScript的使用方式是该问题的很大一部分。

对残疾人造成障碍的网站通常设计得很糟糕。使网站可访问使个人,企业和社会受益。而且,作为前端开发人员,您必须了解确保您的Web应用程序包含尽可能少的障碍是您的责任之一。如果您不这样做,那么为什么首先要进行前端开发?

Web开发不是关于如何使&lazy" lazy"的工作变得快速简便。长期以来一直忘记了如何手动执行任何操作的前端开发人员,结果不再知道或不了解如何在不使用产生障碍的框架或技术的情况下将简单的网站组合在一起。

最佳解决方案将始终是确保基本功能在没有JavaScript的情况下也能正常工作。

值得一提的另一点是,由于非常有效的安全问题,越来越多的人使用NoScript之类的扩展毫不妥协地禁用JavaScript。如果没有JavaScript的网站无法正常运行,它将定期失去潜在的访问者和客户。如果您仅使用基于JavaScript的统计系统(例如Googles Analytics),那么您甚至都不会看到此问题。您需要查看后端运行的统计信息(例如网络服务器日志),以查看有多少访问者在未启用JavaScript的情况下访问了您的网站。

第三方JavaScript小部件和JavaScript库的安全性问题是JavaScript的易受攻击的方面,已被大量积极利用。浏览器中的安全问题(例如CVE-2019-11707和CVE-2019-11708)是非常重要的问题,如果禁用或完全删除JavaScript,则这些问题可以完全缓解。 CVE-2019-11707是Mozilla Firefox中的类型混淆漏洞,由于Array.pop中的问题(在处理JavaScript对象时可能会发生),该漏洞可能导致可利用的崩溃。 CVE-2019-11708是由于对参数的审查不足而导致的Prompt:Open进程间通信(IPC)消息中的沙箱逃逸漏洞。攻击者可以利用子漏洞和父进程之间特制的Prompt:Open IPC消息,利用此漏洞导致非沙盒化父进程从受感染的子进程中打开Web内容。结合使用CVE-2019-11708和CVE-2019-11707可以导致任意代码执行。

客户端中的JavaScript并不是必然的弊端。它是一种在某些特殊情况下可以非常认真地改善用户体验的工具,但是如果您要使常规和非唯一的Web应用程序都依赖JavaScript,那么这清楚地表明您是做错了什么

不要再将JavaScript当作依赖项来推动常规和愚蠢的网站运行了! 如果您有任何意见或更正,请随时通过电子邮件发送给我。 另外,如果您发现此内容有用,请考虑在Patreon上为我提供支持