class类文件会不会被远程调用执行啊

#1 cnrae

比如一个单纯的上传类,会不会被远程调用恶意上传呀

2012-04-18 16:17:35

#2 jake

如果是通过单入口index.php调用的话,就不会。如果是独立的php文件的话,有可能。

所以在speedphp里面,尽量使用单入口。

2012-04-18 16:50:51

#3 cnrae

那比如一个上传类,接受$_FILES后上传就全部由类处理,类文件中并未判断用户登录情况
这样,如果别人知道类名称和位置,直接远程调用这个类文件,然后在他的php里传$_FILES给我的类文件
这样等于就可以随便在我服务器上上传了啊

2012-04-19 10:51:06

#4 jake

“如果别人知道类名称和位置,直接远程调用这个类文件”
这个到底是一个入口文件,还是一个controller的类文件?

如果是一个controller文件,调用的时候就要通过入口文件,那么你可以在入口文件加上权限控制即可。这就是speedphp框架的方式,比较安全。

如果是单独的一个文件,那就难说了,这也不是speedphp的方式。

建议楼上好好去研究一下单入口程序吧,这样说起来很困难。

2012-04-19 11:32:35

#5 xiaopiao

dz的做法是
if(!defined('DISCUZ'))die('Access Denied');
我觉得这种做法不错,如果直接访问文件,则会显示Access Denied

2012-04-21 18:07:49

#6 jake

xiaopiao 发表于 2012-4-21 18:07
dz的做法是我觉得这种做法不错,如果直接访问文件,则会显示Access Denied
因为dz的文件,和speedphp的那种应用程序的文件不同,dz很多都不是“类文件”,而是“过程文件”,

“过程文件” 直接访问如果没有加这段语句是会执行,因为过程文件可以自己调用自己 。

但是类文件不会,因为类文件的“类”需要“被调用”,自己调用不了自己。

2012-04-22 19:25:59