用户
 找回密码
 入住 CI 中国社区
搜索
查看: 3687|回复: 7
收起左侧

[已解决] 域名中直接访问applicatioon和system目录时怎么报服务器信息

[复制链接]
发表于 2012-4-28 10:25:43 | 显示全部楼层 |阅读模式
本帖最后由 fltn03 于 2012-4-28 10:26 编辑

最近做完项目,用工具扫描后发现项目中存在不少的安全漏洞.其中之一便是如题所述的问题.
相信使用CI框架的部分开发者也有遇到过这样的问题:
当在地址栏中输入错误的控制器或方法时,系统自动转向CI的404页面.但是当地址栏中输入的信息存在但不允许访问的目录时,就会报服务器信息,这样服务器采用什么环境和配置信息就会暴露出来引起安全问题。
例如:(假设我现在有一个CI项目,域名为www.example.com),当我访问http://www.example.com/appllicationhttp://www.example.com/system时,就会暴露项目的服务器信息:
-------------------------------------------------------------------------------------------------------------------------------
Access forbidden!
You don't have permission to access the requested object. It is either read-protected or not readable by the server.
If you think this is a server error, please contact the webmaster.
Error 403
www.example.com
04/28/12 10:15:09
Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/1.0.0e PHP/5.3.8 mod_perl/2.0.4 Perl/v5.10.1

-------------------------------------------------------------------------------------------------------------------------------
请问如何处理,能显示CI的404页面呢?




发表于 2012-4-28 10:38:12 | 显示全部楼层
通过 rewrite 将非媒体类文件(如css js 等目录)的路径都交由 index.php处理
发表于 2012-4-28 12:09:16 | 显示全部楼层
很简单,把 application 和 system 目录放到非 web 目录即可,手册也有提到这个方法。
 楼主| 发表于 2012-4-28 13:18:16 | 显示全部楼层
暗夜星辰 发表于 2012-4-28 10:38
通过 rewrite 将非媒体类文件(如css js 等目录)的路径都交由 index.php处理

这是我项目根目录下的.htaccess文件:
<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond $1 !^(index\.php|images|js|css|flash|bat|log|robots\.txt)
        RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>
这个算是按照你的办法进行了Rewrite了吧.但结果还是一样.难道是我的.htaccess内容写的不对?
请指正!谢谢!
 楼主| 发表于 2012-4-28 13:23:54 | 显示全部楼层
Hex 发表于 2012-4-28 12:09
很简单,把 application 和 system 目录放到非 web 目录即可,手册也有提到这个方法。 ...

1.把这两个目录放到非web目录,那域名指向的根目录是哪了?
2.手册中有提到?是新版的吗?没找到地址!
能说的详细点吗?
谢谢Hex!
发表于 2012-4-28 15:16:45 | 显示全部楼层
HEX的方法最简单了。一般你在开发的时候system是被单独放在一个地方的,这样也比较安全的。
发表于 2012-4-28 16:16:50 | 显示全部楼层
fltn03 发表于 2012-4-28 13:23
1.把这两个目录放到非web目录,那域名指向的根目录是哪了?
2.手册中有提到?是新版的吗?没找到地址!
能说的 ...

你看下index.php 把相关路径改一下就可以了.
发表于 2012-4-28 16:32:47 | 显示全部楼层
fltn03 发表于 2012-4-28 13:23
1.把这两个目录放到非web目录,那域名指向的根目录是哪了?
2.手册中有提到?是新版的吗?没找到地址!
能说的 ...

看这两个:
http://codeigniter.org.cn/user_guide/installation/index.html
http://codeigniter.org.cn/user_guide/general/managing_apps.html

CI 其实只需要 index.php 就可以工作,application 和 system 只要放到服务器上即可,不用放到 www root 下。

本版积分规则