作者MrMarcus (请勿忘记密码)
看板PHP
标题Re: [闲聊] 关於安全性
时间Sun Jan 28 15:13:15 2007
※ 引述《chweng ()》之铭言:
: ※ 引述《eric77712 (心要让你听见)》之铭言:
: : 大家好:
: : PHP有个函是叫include();,
: : 我觉得这个函式有个小缺点,他可以include("url");,
: : 这样的话对於对方Server的资料安全可能会有危险,
: : 因为可以在include("url");完之後去Try看看对方PHP有什麽变数,
: : 所以我在想,是不是可以在每个页面最後加上unset();把不用的变数拿掉,
: : 大家的看法如何呢?
: 没那麽夸张吧?
: 就算是去 include 别人的 url,也只会收到对方处理过後的资料而已,
: 应该不会接收到对方处理过程中所用的变数。
: 我刚刚试了一下,应该是没办法用这方法读到才对,
: 或者我误会你的意思了?可以请你实作一个看看吗?
: 有一种比较常见的情况是,某些程式会以 inc 为副档名,
: 但偏偏 server 又忘了把这类档案的 MIME type 设成 application/x-httpd-php,
: 导致 server 直接以 text/plain 直接把程式码全给倒出来…
: 如果这时候程式中刚好又含有重要资讯的话,就直接被别人看光光了。
: 不过这时候也不需要 include,直接踹到该 inc 正确的位置就可以了……
include("
http://") 这种方式只能撷取到对方web server执行完後送出的html
(或者其他格式)内容,这样是不会抓到对方的PHP原始码的(除非就像c网友所
提到的状况)。不过include在多人共用的伺服器上面确实有可能把其他使用者
的程式码抓进来,例如在虚拟主机上面,这种状况是有可能发生的(其他档案
操作的功能也一样)。PHP对於这个问题有提供一些方式去防止使用者试图
去include/require/fopen()他们不该看到的档案,请查询关於safe mode的资料。
http://www.php.net/manual/en/features.safe-mode.php
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 220.132.153.19
1F:推 eric77712:Good... 01/28 18:13