Перевод нормальный, GJ автор. Заметно немного, что вы переводили так, чтобы не пропустить ни слова из оригинала, я и сам так перевожу, поэтому стараюсь, после того, как перевел, написать пересказ на русском своего же перевода. Оно как-то оживляет, что ли, текст.
Мне кажется, что статическая типизация языка в данном случае не слишком сильно влияет на возможность допустить ошибку, написав уязвимый код. Такого рода логические недочеты языком навряд ли смогут регулироваться без специальных средств. Так что нужно проверять себя, на каждом участке кода пытаясь узнать — возможно ли возникновение нештатной ситуации и каким образом её можно предотвратить.
> Так что нужно проверять себя, на каждом участке кода пытаясь узнать — возможно ли возникновение нештатной ситуации и каким образом её можно предотвратить.
Пишите чистые, полностью определенные функции и все будет замечательно.
Я бы не был настолько критичен. Вы никогда не можете быть уверены, что можете сделать работу без ошибок. Так что если рассуждать подобным образом, ни за какую работу браться нельзя.
Я бы сказал, это 25 причин проверить свою работу на предмет ошибок лишний раз. Как говорится, кто предупрежден, тот вооружен.
Спасибо за информацию. Жаль только, что не описаны основные методы предотвращения таких ошибок. Интересующимся могу предложить пролистать книгу «Защищенный код» из боекомплекта разработчика microsoft. Недавно видел её в Pdf на русском языке, где-то на torrents.ru. Но в этой книге, по большей части, ориентация на Windows и платформу .NET.
Думаю, что примеры уже отдельная статья, а здесь просто список :).
Спасибо, все эти правила, конечно, знать нужно и так, но неплохо было все перечитать заново. Спасибо.
25 самых опасных ошибок в программировании