php中禁止危險php函數的例子

來源:互聯網
上載者:User

禁用方法如下:
 
開啟/etc/php.ini檔案,
 
搜尋定位到這行 

1.disable_functions = 

添加需禁用的函數名,比如: 

 代碼如下 複製代碼

phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen

相反的如果要運行php運行某個函數刪除相應的函數即可。但文章有個“eval”函數,這個不是系統函數所以無法禁止不信大家可試下。


以上只是列了部分不叫常用的檔案處理函數,你也可以把上面執行命令函數和這個函數結合,
就能夠抵制大部分的phpshell了。

但是我後來看一文章告訴我們這樣做不是萬能的在linux中可以直接突破Disable_functions執行Linux命令

 代碼如下 複製代碼

<?php
//PHP4調用方法
dl('../../../../../home/apache/htdocs/php4.so');
biguanspider('uname -a');//調用函數
?> www.111cn.net

<?php
//PHP5調用方法
dl('../../../../../home/apache/htdocs/php5.so');
spiderbiguan('uname -a');//調用函數
?>

很多管理員在封殺PHP危險函數的時候一般都是這樣的:disable_functions = proc_open,exec,passthru,shell_exec,system,popen
但是如果編譯PHP時帶–enable-pcntl參數就危險了,可以用pcntl_exec函數執行指定程式,也可以反彈一個SHELL,在PHPINFO裡查看編譯參數。
描述:pcntl_exec — 在當前進程空間執行指定程式,具體的做法我就不寫了,所以linux安全還是得從本身設定不要想到php這樣配置就KO了。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.