所有
我有以下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密集型的,我想保护它免受用户的关注。
由于
答案 0 :(得分:6)
您不能 - 浏览器必须能够访问它以显示它以及浏览器可以看到的任何内容,用户可以看到。
可以限制对发送引荐来源标头的浏览器的访问权限,但是对于浏览器不发送引荐来源的某些用户而言,这可能会破坏您的网站,并且当用户试图查看该页面的来源,他们可能会查看他们的浏览器已经下载的副本,用于渲染网站而不是获取新的副本。
说了这么多之后,你可以使用像YUI compresser这样的脚本来减少JavaScript的大小,有助于降低它的可读性:)。
答案 1 :(得分:0)
这是不可能的。例如,如果您有一个JavaScript文件
/js/seekrit.js
并且您阻止它被打开,它也会阻止通过包含它的页面打开,因为浏览器会在同一页面上单独发出HTTP请求(在后台)。
但是,您可以使用某种哈希来仅允许授权请求。
换句话说,使用服务器端进行特殊处理。不要将JavaScript用于seekrit的东西。