Правила безопасности для DataLife Engine на базе NGINX
В этой статье мы добавим немного безопасности нашим файлам DataLife Engine под управлением веб-сервера NGINX.
В официальном файле с правилами для NGINX от разработчиков DLE, по какой-то причине не закрыты доступы к важным директориям и файлам. А именно:
- Директория с бэкапами.
- Директория с кэшем.
- Доступ к файлам шаблона.
- Доступ к файлам в папке /engine/data/
- Доступ к php файлам в критических директориях.
location ~* \.(tpl)$ {
deny all;
return 404;
}
location /backup/ {
deny all;
}
location ~* (uploads|uploads/fotos|uploads/posts|templates|language|language/Russian|language/Ukrainian|language/English|engine/data)/.+\.php {
deny all;
}
location ~* (engine/cache) {
deny all;
}
location ~* (engine/data)/.+\.txt {
deny all;
}
location ~ /\.ht {
deny all;
}
Добавив эти правила, вы обезопасите себя и свой сайт от прямого доступа к важным директориям, файлам и возможным уязвимостям.
Дополнительно
Если у вас есть подобное правило
location ~ [^/]\.ph(p\d*|tml)$ {
try_files /does_not_exists @php;
}
То необходимо добавить внутрь него следующее правило, в противном случае запуск php файлов напрямую всё также будет работать.
location ~* (uploads|uploads/fotos|uploads/posts|templates|language|language/Russian|language/Ukrainian|language/English|engine/data)/.+\.php {
deny all;
}
Выйдет по итогу
location ~ [^/]\.ph(p\d*|tml)$ {
location ~* (uploads|uploads/fotos|uploads/posts|templates|language|language/Russian|language/Ukrainian|language/English|engine/data)/.+\.php {
deny all;
}
try_files /does_not_exists @php;
}