2013-09-24 3 views
0

Я создал сайт 1 год назад, используя php, когда у меня было гораздо меньше опыта. Мой учитель и я сегодня анализировали код, и, похоже, проблема безопасности. Он хочет, чтобы я исправил это, прежде чем он даст мне нужные мне очки.ограничивать доступ ко всем файлам php, кроме трех из них

У меня есть index.php и edit.php файла в корневом каталоге, и страница входа в /php/login.php (который я нахожу, чтобы быть очень глупое местом, чтобы поместить файл вход в, теперь, когда я оглядываюсь на него, Я бы, вероятно, поменял бы edit.php и login.php, если бы я переписал свой сайт).

В принципе, я хочу, чтобы эти три файла были доступны снаружи. Я хочу, чтобы все другие php-файлы были ограничены извне, поэтому невозможно выполнить вызов ajax до /php/phpsavefile.php вне системы (это проблема безопасности, о которой я упоминал). edit.php делает вызов ajax до /php/savefile.php.

Я думаю, что это то, что мне нужно, чтобы получить работу:

Order Deny,Allow 
Deny from all 
Allow from 127.0.0.1 

<Files /index.php> 
    Order Allow,Deny 
    Allow from all 
</Files> 

Но как я могу добавить три файла, а не только один за <Files и до >?

Я также попытался второй подход:

Order Deny,Allow 
Deny from all 

Это не похоже на работу, потому что вызов Ajax, как представляется, запрос регулярный HTTP, так что он получает 403 ответа.

Другой подход, который я пробовал, заключался в том, чтобы помещать ограниченные php-файлы в карту, называемую «private» , в той же папке, где остается «httpdocs» (родительская папка webroot). Мой учитель рассказал мне о папке администратора, которую никто не может получить, кроме самого сайта. Я попытался в том числе ограниченных PHP файлов внутри личной папки, но это, кажется, не включать его правильно ...

Любая помощь или советы для этого новичка в .htaccess будут оценены :-)

Редактировать : комментарий

.htaccess allow access to files only from includes

Рэй сказал:

конечно, потому что они по желанию клиента. Вы не можете «разрешить клиенту» и «не разрешать клиенту» обслуживать файлы.

Я полагаю, что это правда, но как я могу предотвратить людей от вызова моего файла ajax?

ответ

Смежные вопросы