41
Пароль должен храниться в зашифрованном виде. Можно использовать такие
алгоритмы, как SHA. Во время авторизации будут сравниваться только
зашифрованные данные паролей. Для дополнительной безопасности можно
добавлять «соль» в пароль. Для каждого пароля должна быть своя «соль».
В случае взлома и кражи ваших паролей ничего страшного не произойдет.
Злоумышленник не сможет расшифровать пароли. Лучшее, что он может
сделать — это использовать словарь паролей для подбора. При
использовании «соли» пароли будут подбираться медленней, так как будет
искаться хэш для «соли» и пароля, что трудоемко.
К счастью, во многих CMS уже встроены эти функции безопасности, хотя в
некоторых, возможно, понадобится дополнительный плагин, который будет
добавлять «соль» к паролям.
6. Загрузка файлов
Позволять пользователям загружать файлы на сервер очень опасно, даже
если они всего лишь меняют аватар. Риск в том, что загруженный файл
может содержать скрипт, который может быть выполнен на сервере, если
открыть его через браузер.
Если у вас есть форма для загрузки файлов, то вы должны с огромным
подозрением относится к загружаемым файлам. Если вы позволяете
пользователям загружать изображения, вы не можете, полагаясь на
расширение файла или MIME тип, чтобы определить, что файл является
изображением, как их можно легко подделать. Даже открыв файл и прочитав
заголовки, или используя функцию для проверки размера изображения вы не
сможете гарантировать полную защиту от подмены. Большинство
изображений позволяют хранить раздел комментариев, которые могут
содержать PHP (или какой-либо другой) код, который может быть выполнен
на сервере.
Так что можно сделать, чтобы предотвратить это? В конечном итоге мы
хотим, чтобы пользователи не могли запустить файлы, которые они