История изменений
Исправление Black_Roland, (текущая версия) :
Как это понять писать в весь проэкт ? не пойму не много. У меня там права на все файлы 0644, и на папку с картинками только 0755 куда они закачиваются, и все. Остальное пишется в базу.
Ну вот у тебя тоже по всему проекту можно писать. На все файлы, кроме директории с картинками нужны права только на чтение (550/440). Нужно для того, чтобы у взломщика не было права редактировать код проекта, либо код фреймворка.
При этом все равно можно залить посторонний код в директорию с картинками. Если у сайта единая точка входа (в большинстве случаев так и есть, исключение Битрикс, например), то нужно разрешить выполнять код только этого файла, а все остальные .php запретить. Например так:
# Редирект запросов на единую точку входа — /index.php
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# Перенаправлять /index.php в PHP-FPM
location /index.php {
fastcgi_pass unix:/something.sock;
...
}
# PHP-скрипты кроме /index.php теперь не выпоняются, но скачиваются, т.е. будет видно код php-файлов. Заодно блокируем файлы Git.
location ~ (\.php|\.git.*)$ {
return 403;
}
Если так настроить, то залитый в картинки .php файл не выполнится — получим 403.
Исправление Black_Roland, :
Как это понять писать в весь проэкт ? не пойму не много. У меня там права на все файлы 0644, и на папку с картинками только 0755 куда они закачиваются, и все. Остальное пишется в базу.
Ну вот у тебя тоже по всему проекту можно писать. На все файлы, кроме директории с картинками нужны права только на чтение (550/440). Нужно для того, чтобы у взломщика не было права редактировать код проекта, либо код фреймворка.
При этом все равно можно залить посторонний код в директорию с картинками. Если у сайта единая точка входа (в большинстве случаев так и есть, исключение Битрикс, например), то нужно разрешить выполнять код только этого файла, а все остальные .php запретить. Например так:
# Редирект запросов на единую точку входа — /index.php
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# Перенаправлять /index.php в PHP-FPM
location /index.php {
fastcgi_pass unix:/something.sock;
...
}
# PHP-скрипты кроме /index.php теперь не выпоняются, но скачиваются, т.е. будет видно код php-файлов. Блокируем, заодно блокируем файлы Git.
location ~ (\.php|\.git.*)$ {
return 403;
}
Если так настроить, то залитый в картинки .php файл не выполнится — получим 403.
Исходная версия Black_Roland, :
Как это понять писать в весь проэкт ? не пойму не много. У меня там права на все файлы 0644, и на папку с картинками только 0755 куда они закачиваются, и все. Остальное пишется в базу.
Ну вот у тебя тоже по всему проекту можно писать. На все файлы, кроме директории с картинками нужны права только на чтение (550/440). Нужно для того, чтобы у взломщика не было права редактировать код проекта, либо код фреймворка.
При этом все равно можно залить посторонний код в директорию с картинками. Если у сайта единая точка входа (в большинстве случаев так и есть, исключение Битрикс, например), то нужно разрешить выполнять код только этого файла, а все остальные .php запретить. Например так:
# Редирект запросов на единую точку входа — /index.php
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
# Перенаправлять /index.php в PHP-FPM
location /index.php {
fastcgi_pass unix:/something.sock;
...
}
# PHP-скрипты теперь не выпоняются, но скачиваются, т.е. будет видно код php-файлов. Блокируем, заодно блокируем файлы Git.
location ~ (\.php|\.git.*)$ {
return 403;
}
Если так настроить, то залитый в картинки .php файл не выполнится — получим 403.