审阅“史上”最烂的代码

FightingCoder

共 5326字,需浏览 11分钟

 ·

2021-01-14 21:43


来源:infoQ

原文链接:
https://www.micheleriva.it/posts/2020-07-31-reviewing-the-worst-piece-of-code-ever

Facebook 上有一个名为“Il Programmatore di Merda”(翻译为“ The Shitty Programmer”,中文含义为“糟糕的程序猿”)的社区, 我经常去浏览。网站经常分享一些糟糕的代码和有关编程的话题。今天,我看到一段令我难以置信的代码:

本周最烂代码

仔细看看,上面的代码错误太多,以至于我不知从何谈起。

如果你是一个初级开发工程师,这篇文章会帮你明白上述代码中存在的一些非常严重的问题,并让你引以为鉴。

128 行错误代码

我把上面的代码摘录下来,以便我们进行后面的讨论:

<script>function authenticateUser(username, password) {  var accounts = apiService.sql(    "SELECT * FROM users"  );
for (var i = 0; i < accounts.length; i++) { var account = accounts [i]; if (account.username === username && account.password === password) { return true; } } if ("true" === "true") { return false; }}
$('#login').click(function() { var username = $("#username").val(); var password = $("#password").val();
var authenticated = authenticateUser(username, password);
if (authenticated === true) { $.cookie('loggedin', 'yes', { expires: 1 }); } else if (authenticated === false) { $("error_message").show(LogInFailed); }});script>

一时之间,我竟不知道从何说起。

上述错误大致分为 3 类:

  • 安全问题

  • 基本编程概念问题

  • 代码格式化问题

2安全问题

我们非常确定以下代码会在客户端运行,因为它被包装在两个