Zend - запретить доступ к файлам CSS, JS, Image - PullRequest
0 голосов
/ 06 мая 2010

All

У меня есть следующая структура приложения Zend:

helloworld
 - application
     - configs
     - controllers
     - models
     - layouts
 - include
 - library
 - public
    - design
       -- css
           -- site.css
       -- js
           -- global.js
       -- images
           -- siteheader.gif
           -- sitefooter.gif
    - .htaccess
    - index.php

Мой файл .htaccess в общей папке выглядит так:

Options -MultiViews

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Мой корневой каталог документа указывает на папку "public". В настоящее время, если пользователь посещает URL-адрес уровня каталога (например: http://localhost/design или localhost / css), мой файл .htaccess, указанный выше, должен показать ему страницу «Доступ запрещен». Но если он посещает URL уровня файла (например: http://localhost/design/css/site.css),, он показывает ему файл CSS или файл js или файл PHP ..

Как я могу убедиться, что заблокировал доступ на уровне файлов для файлов указанных выше типов, если доступ осуществляется непосредственно с URL-адреса? Поскольку мое приложение интенсивно использует JS, я хочу защитить его от пользователей, которые на него смотрят.

Спасибо

Ответы [ 2 ]

6 голосов
/ 06 мая 2010

Вы не можете - браузер должен иметь доступ к нему, чтобы отобразить его и все, что браузер может видеть, пользователь может видеть.

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

Сказав все это, вы можете использовать скрипт типа YUI compresser , чтобы уменьшить размер вашего JavaScript, а также сделать его менее читабельным:).

0 голосов
/ 06 мая 2010

Это невозможно. Например, если у вас есть файл JavaScript

/js/seekrit.js

и вы не разрешаете его открывать, это также предотвращает открытие посредством страниц, включающих его, так как браузер отправляет отдельный HTTP-запрос (в фоновом режиме) на ту же страницу.

Однако вы можете использовать какой-то хеш, чтобы разрешать только авторизованные запросы.

Другими словами, использовать сторону сервера для специальных вещей. Не используйте JavaScript для поиска вещей.

...