25 самых опасных программистских ошибок
Некоммерческая организация MITRE и институт SANS опубликовали список из 25 наиболее распространенных ошибок в программировании, которые могут сыграть на руку хакерам.
На первых трех местах - ‘Cross-site Scripting’, ‘SQL Injection’ и ‘Classic Buffer Overflow’. Первые 2 - чисто интернетные ошибки, а вот переполнение буфера - классическая ошибка, до сих пор встречающаяся повсеместно.
Я здесь привожу переведенный краткий список всех 25 ошибок.
По ссылке в описании каждой ошибки гораздо больше информации - детальное описание ошибки, методы обнаружения, тестирования и исправления. Так что стоит всё это прочитать для ошибок, существенных для вас.
Ранг | Баллы | Ссылка | Название |
---|---|---|---|
[1] | 346 | CWE-79 | ‘Cross-site Scripting’ |
[2] | 330 | CWE-89 | Неправильная обработка специальных элементов в SQL командах (’SQL Injection’) |
[3] | 273 | CWE-120 | Копирование буффера без проверки размера входных данных (’Classic Buffer Overflow’) |
[4] | 261 | CWE-352 | Подделка кросс сайтных запросов (CSRF) |
[5] | 219 | CWE-285 | Неправильный контроль доступа (Authorization) |
[6] | 202 | CWE-807 | Полагание на ненадежные данные при принятии Security решений |
[7] | 197 | CWE-22 | Неправильное ограничение имени пути к конфиденциальной папке (’Path Traversal’) |
[8] | 194 | CWE-434 | Незапрещенная загрузка файлов с опасными расширениями |
[9] | 188 | CWE-78 | Неправильная санитарная обработка специальных элементов, используемых в командах ОС (’OS Command Injection’) |
[10] | 188 | CWE-311 | Отсутствие криптования секретных данных |
[11] | 176 | CWE-798 | Использование захардкоженных конфиденциальных данных (логин и пароль, например) |
[12] | 158 | CWE-805 | Доступ к буферу с неправильной длинной |
[13] | 157 | CWE-98 | Неправильный контроль имени файла для Include/Require оператора в PHP (’PHP File Inclusion’) |
[14] | 156 | CWE-129 | Неправильная проверка индекса массива |
[15] | 155 | CWE-754 | Неправильная проверка необычной или исключительной ситуации |
[16] | 154 | CWE-209 | Раскрытие конфиденциальной информации в сообщение об ошибке |
[17] | 154 | CWE-190 | Переполнение целого (Integer Overflow) |
[18] | 153 | CWE-131 | Неправильное вычисление размера буфера |
[19] | 147 | CWE-306 | Отсутствие идентификации для критической функции |
[20] | 146 | CWE-494 | Скачивание кода без проверки целостности |
[21] | 145 | CWE-732 | Некорректные права доступа к критическим ресурсам |
[22] | 145 | CWE-770 | Выделение ресурсов без ограничения или тротлинг (Throttling) |
[23] | 142 | CWE-601 | URL перенаправление на ненадежные сайты (’Open Redirect’) |
[24] | 141 | CWE-327 | Использование сломанного или рискованного криптографического алгоритма |
[25] | 138 | CWE-362 | ‘Race Condition’ |
Ужасный перевод на русский.
Переводить технические термины на русский - это всегда неблагодарное дело.
А если по существу - есть предложения? Как что назвать было бы лучше?
@bishop, полностью с вами согласен по поводу технических терминов, их лучше оставлять на английском. А по переводу, я ничего плохого не заметил. Спасибо за интересную статью.