㈠ 如何在Apache和Nginx禁止上传目录里php的执行权限
网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率。
下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限。
在虚拟主机配置文件中增加php_flag engine off指令即可,配置如下
"/website/uploads">,denyAllowfromallphp_flagengineoff
Nginx更简单,直接通过location条件匹配定位后进行权限禁止。
在server配置段中增加如下的配置
如果是单个目录
location~*^/uploads/.*.(php|php5)${denyall; }
如果是多个目录
location~*^/(attachments|uploads)/.*.(php|php5)${denyall;}
注意:这段配置文件一定要放在下面配置的前面才可以生效。
location~.php${ fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
最后给一个完整的配置示例
location~/mm/(data|uploads|templets)/*.(php)${ denyall; } location~.php${ try_files$uri/404.html; fastcgi_pass127.0.0.1:9000; fastcgi_indexindex.php; fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; includefastcgi_params; }
配置完后记得重启Nginx生效。
㈡ 瑙e喅PHP鍦╓indows IIS 涓娄紶镄勫浘鐗囨棤娉曡块梾镄勯梾棰
鍦╓indows绯荤粺涓婏纴濡傛灉浣犻亣鍒癙HP阃氲繃IIS涓娄紶锲剧墖钖庢棤娉曚粠娴忚埚櫒姝e父璁块梾镄勯梾棰桡纴寰埚彲鑳芥槸锲犱负𨱒冮檺璁剧疆闂棰樸傞栧厛锛屾墦寮鎺у埗闱㈡澘锛屾垒鍒板苟镣瑰嚮"瀹夊叏涓蹇"锛岃繘鍏Windows阒茬伀澧栾剧疆銆傚叧闂阒茬伀澧椤悗锛岄梾棰桦彲鑳芥簮浜嶱HP榛樿や娇鐢ㄧ郴缁熶复镞剁洰褰"C:/Windows/Temp"锛岃ョ洰褰曟潈闄愬彲鑳戒笉瓒充互璁㊣IS璁块梾銆傝В鍐虫柟娉曟槸淇鏀筽hp.ini鏂囦欢锛屽皢"upload_tmp_dir"閰岖疆涓轰竴涓鍏锋湁阃傚綋𨱒冮檺镄勪复镞剁洰褰曪纴渚嫔傝嚜瀹氢箟涓涓鐩褰曞苟璧嬩篑IUSER鍜孖IS_IUSERS𨱒冮檺锛屾垨钥呰剧疆涓篍veryone𨱒冮檺锛屼互渚夸簬鏂囦欢涓娄紶鍜屽悗缁璁块梾銆傝繖镙凤纴纭淇濅笂浼犵殑鏂囦欢鍦ㄧЩ锷ㄥ埌鎸囧畾鐩褰曞悗锛屾嫢链夋g‘镄勬潈闄愶纴灏辫兘阆垮厤"401 - 链鎺堟潈"镄勯敊璇銆傞吨瑕佹彁绀猴细锷″繀纭淇濅綘涓簎pload_tmp_dir璁剧疆镄勭洰褰曞叿链塈USER鍜孖IS_IUSERS𨱒冮檺锛屾垨钥呰呖灏戞槸Everyone𨱒冮檺锛屼互瑙e喅锲剧墖镞犳硶璁块梾镄勯梾棰樸
㈢ 如何限制Nginx+PHP的目录权限
最近Nginx的使用者是越来越多,多数网站也从原本使用很多的Apache平台或其他平台迁移到了Nginx。对于刚刚接触Nginx的朋友来说,如何限制Nginx+PHP的目录权限成了实际问题,
大家都知道,在Apache中可以很容易的对虚拟目录进行权限控制,如:
程序代码如下:
<VirtualHost IPn>
ServerAdmin [email protected]
DocumentRoot /usr/www/xpb/
ServerName IP:80
ServerAliasIP
ErrorLog logs/default-error_log
php_admin_value open_basedir "/tmp/:/usr/www/xpb/"
</VirtualHost>
关键是后面的这句php_admin_value,这样就限制了php的操作目录仅限于/tmp/和/usr/www/xpb/这两个目录了。对于Apache虚拟主机来说,这个设置十分有用,结合在php.ini中禁用一些php函数,几乎可以杜绝PHP木马对其他站点及系统的危害。我虽没专业做过linux下的虚拟主机,但相信各大虚拟主机商也是这么做的。
看来对于Apache最好的办法还是使用“在php.ini中禁用一些危险的php函数和在Apache虚拟主机中配置php_admin_value”的方式来做虚拟主机的安全。
关于Nginx的配置文件,参考了很多资料,好像是不支持php_admin_value open_basedir,也就是Nginx暂时还没有Apache的 php_myadmin_value这类的设置。如果用Nginx做虚拟主机,各用户之间的目录安全控制如何来做呢?网上很多人说,限制上传文件类型,做好程序安全不就行了么?对,对于自己的站点来说这样完全可以。但如果虚拟主机是给别人用的,又给予了FTP权限,总不能不让人上传php文件吧。
转载,仅供参考。
㈣ Linux下使用PHP实现提升权限技巧phplinux提权
随着互联网的发展和IT技术的日新月异,Linux系统作为一种常用的服务器操作系统,也变得越来越重要。PHP作为一种强大的脚本语言,在Linux系统下也得到了广泛的应用。在Linux系统中,管理员或开发人员需要通过提升用户权限来完成各种操作,如编辑系统文件或者执行某些需要root权限才能运行的脚本等。本文将阐述在Linux系统下使用PHP实现提升权限技巧。
一、前置知识
在讨论如何使用PHP实现提升权限之前,需要了解一些Linux系统的基本知识,如用户、用户组、文件权限等。在Linux系统中,每个文件或目录都有建立它的用户和用户组,并且每个用户都属于某一个用户组,用户和用户组都有各自的权限标记,如读、写、执行等,以及文件的属性,例如所有者、所属组等等。在使用PHP实现提升权限的过程中,我们需要了解这些基本知识,以便正确设置文件和目录的权限。
二、提升权限的方法
1.使用sudo
在Linux系统中,管理员可以使用sudo命令临时提升自己的权限,以执行需要root权限才能运行的操作。如果要在PHP中使用此方法,可以使用PHP的exec函数执行sudo命令。下面是一个使用sudo命令执行某个脚本的例子:
“`
$cmd = “sudo /usr/local/in/test.sh”;
exec($cmd, $output);
print_r($output);
?>
“`
在这个例子中,我们使用sudo命令执行了一个名为test.sh的脚本,该脚本需要root权限才能执行。执行完毕后,输出结果会被存储在$output数组中,然后使用print_r函数输出。
2.修改文件权限
在Linux系统中,管理员可以通过修改文件或目录的权限来提升用户的权限。如果要在PHP中使用此方法,可以使用PHP的chmod函数修改文件或目录的权限。下面是一个修改文件权限的例子:
“`
$file = “/var/www/html/test.php”;
chmod($file, 0755);
?>
“`
在这个例子中,我们将文件/var/www/html/test.php的权限修改为755,其中数字755表示所有者拥有读、写、执行权限,组用户和其他用户拥有读、执行权限。通过修改权限,我们可以让PHP脚本获得更高的执行权限,以便执行某些需要root权限才能运行的操作。
3.使用setuid
在Linux系统中,我们可以为某些可执行文件设置setuid标记,这样所有者拥有执行该文件的权限。如果要在PHP中使用此方法,我们可以设置PHP脚本的所有者为root,并且为PHP可执行文件设置setuid标记。下面是一个使用setuid的例子:
“`
$cmd = “/usr/local/php/php-cgi”;
posix_setuid(0);
chmod($cmd, 04750);
exec($cmd, $output);
print_r($output);
?>
“`
在这个例子中,我们使用PHP的posix_setuid函数将PHP脚本的所有者设置为root,在执行完毕后将PHP可执行文件/usr/local/php/php-cgi的权限设置为4750,其中数字4750表示将setuid标记设置为4,保留原有所有者用户组的读权限,并且为所有组用户和其他用户设置执行权限。执行完毕后,输出结果会被存储在$output数组中,然后使用print_r函数输出。
三、安全问题
在使用PHP实现提升权限的过程中,我们需要注意安全问题,以保证系统的安全性。我们需要使用sudo或setuid时,只将需要的操作对应的程序或文件提升到root权限,而不是整个程序或文件,这样可以控制提升权限的范围,从而减少滥用权限的风险。我们需要谨慎选择在PHP中执行的命令或操作,并为PHP脚本设置足够的安全保护,避免被恶意攻击所利用。我们需要定期审核提升权限的记录,并严格控制提升权限的文件和目录的权限,避免被非法访问或篡改。
在Linux系统下,使用PHP实现提升权限是一种十分实用的技巧,可以让管理员或开发人员获得更高的权限来完成各种操作。在使用此技巧时,我们需要了解Linux系统的基本知识,正确设置文件和目录的权限,并注意安全问题,以保证系统的稳定性和安全性。
相关问题拓展阅读:
linux下php文件设置成什么权限安全又不影响运行?linux下php文件设置成什么权限安全又不影响运行?
建一个用户
这个用户来茄销亏运行网站程序apache
nginx之类
你的PHP文件设颤神置成
chown
你建立的用户
然后读写权限
你看斗李着办
关于php linux 提权的介绍到此就结束了.