- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Зачем быть уникальным в мире, где все можно скопировать
Почему так важна уникальность текста и как она влияет на SEO
Ingate Organic
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Есть движок на PHP.
Его особенность - он умеет генерировать статические файлы (.html, .xml) на основании введеных пользователем данных.
ТО ЕСТЬ - на сайте есть форма, которую заполняет пользователь. Когда он нажимает кнопку отправить, на сервере в папке появляется новый статический файл .html.
Для того чтобы это стало возможным мне пришлось выставить максимальные права для этой папки (куда записываются файлы) - 777, т.е. все пользователь могут читать, записывать и выполнять все файлы.
ВОПРОС:
насколько это безопасно?
как настроить сервер, чтобы описанная фукциональность сохранялась, но и было безопасно для сайта?
такое вообще практикуется? встречали?
как настроить сервер, чтобы описанная фукциональность сохранялась, но и было безопасно для сайта?
такое вообще практикуется? встречали?
закройте доступ ко всем файлам кроме файлов с указанным расширением
да такое практикуется, встречали
Закрыть доступ можно при помощи файла .htaccess помещенного в эту папку
Закинь в эту папку .htaccess с содержимым:
Запрещает прямое обращение к PHP файлам, находящимся в этих папках, становятся бесполезными для зловреда.
А зачем закрывать? в вашем случае просто введенные пользователем данные вырезайте из них теги. В PHP функция strip_tags('test <script>alert();</script>');
Этого достаточно я думаю. Так как html и xml не исполняемые файлы и вряд ли как-то повредят вашему сайту.
...на сайте есть форма, которую заполняет пользователь. Когда он нажимает кнопку отправить, на сервере в папке появляется новый статический файл...
Файл там появляется потому, что создает его вебсервер, а не пользователь.
Поэтому это:
Для того чтобы это стало возможным мне пришлось выставить максимальные права для этой папки (куда записываются файлы) - 777, т.е. все пользователь могут читать, записывать и выполнять все файлы.
совершенно неверно.
Права на запись достаточно иметь вебсерверу.
Всем остальным - права на чтение файлов и просмотр папки.
насколько это безопасно?
как настроить сервер, чтобы описанная фукциональность сохранялась
Права 777 врядли можно назвать безопасными при любом раскладе.
- Поставьте 755,
- Убедитесь, что владелец папки - вебсервер (или пользователь под которым он у вас работает)
- Фильтруйте пользовательский ввод (писали выше)
- Ограничте доступ к файлам (писали выше)
Что с этими файлами дальше происходит? Их любой может открыть по предоставленной ссылке или только автор, или никто?
максимальные права для этой папки
Чтобы из нее никто не мог открыть файл из папки в публичном месте, в .htaccess надо написать Deny from all
Или сделайте так, чтобы эта папка не входила в папку сайта.
Друзья, у меня nginx.
Файлы которые генерируются должны быть доступны остальным пользователям по ссылке, т.е. закрыть права для всех я не могу.
Я боюсь что злоумышленник сможет записать в такую папку свой файл с вредоносным сценарием и запустить его (как запишет на сервер этот файл - другой вопрос, я думаю хакеру это подсилу).
Вынести сохраняемые файлы в отдельную папку и открыть права только на нее мне кажется хорошей идеей, но мне бы хотелось чтобы все сохраняемые файлы были доступны по адресу site.ru/page.html, а если они будут помещенны в отдельную папку, то адрес соответственно станет таким site.ru/folder/page.html т.е. в адресе появляется дополнительное звено, что не очень хорошо для восприятия и СЕО.
И потом я так понимаю что эта папка все равно будет уязвима и из нее можно запустить код который навредит всему сайту. Сайт защищен настолько, насколько защищено его самое слабое звено, я так понимаю самым слабым звеном окажется эта папка.
SeoNk, через .htaccess можно запретить выполнение любого php кода в этой папке
Это у вас паранойя. Если движок писал не идиот, ничего вредного записать в файл нельзя. Проверьте коды методов или попросите проверить тех кто понимает. Например сюда процитируйте важны кусок.
Друзья, у меня nginx.
Права на запись достаточно иметь вебсерверу.
Всем остальным - права на чтение файлов и просмотр папки.
[дабы не оверквотить - весь пост имею ввиду, а не только эту цитату]
Ты совершено прав, но один момент.. важный момент пропущенный тобой и сводящий на нет всю практическую правильность.
Скрипты, выполняемые в файлах - будут же выполняться от вебсеревера, а не от юзера. Отсюда - пофик какие там права у юзера на эти файлы.
Наиболее надёжная защита от выполнения скриптов в этих файлах - как сказал WebAlt - запрет выполнения пхп кода в них. Только ИМХО черезчур заумная директива. ИМХО достаточно просто не разрешать исполнение пхп в html, что дефолтно так и есть.
Для пущей безопасности можно внести эти хтмлки в отдельный каталог и запретить пхп в этом каталоге.