当前位置:首页 > > 嵌入式微处理器
[导读]在Facebook网站上有一个名为“Il Programmatore di Merda”(“ The Shitty Programmer”,中文俗译为“粑粑程序猿”)的社区。我经常上去浏览,这个网站经常分享一些写的烂的代码和有关编程的话题。这不,今天我就看到一段令人难以置信的烂代码,有图有真相~

在Facebook网站上有一个名为“Il Programmatore di Merda”(“ The Shitty Programmer”,中文俗译为“粑粑程序猿”)的社区。我经常上去浏览,这个网站经常分享一些写的烂的代码和有关编程的话题。这不,今天我就看到一段令人难以置信的烂代码,有图有真相:


本周最烂代码


请各位仔细查看,上面的代码错误太多,我一时不知该从哪儿说起。


如果你是一个初级开发工程师,本篇文章会帮你理解上述代码中存在的一些严重的bug,希望各位同学引以为鉴。


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 安全问题


我们非常确定以下代码能够在客户端运行,因为它已经包含在两个

换一批
延伸阅读
关闭