php運行於安全模式否,php 安全性

本文目錄一覽:

PHP中的安全模式是指的什麼?

手冊如是說:章 24. 安全模式目錄被安全模式限制或屏蔽的函數php 的安全模式是為了試圖解決共享伺服器(shared-server)安全問題而設立的。在結構上,試圖在 php 層上解決這個問題是不合理的,但修改 web 伺服器層和操作系統層顯得非常不現實。因此許多人,非凡是 isp,目前使用安全模式。表格 24-1. 控制安全模式的設置選項有:設置選項 默認值safe_mode offsafe_mode_gid 0safe_mode_include_dirsafe_mode_exec_dir 1open_basedirsafe_mode_allowed_env_vars php_safe_mode_protected_env_vars ld_library_pathdisable_functions當 safe_mode 設置為 on,php 將檢查當前腳本的擁有者是否和將被文件函數操作的文件的擁有者相匹配。例如: -rw-rw-r– 1 rasmus rasmus 33 jul 1 19:20 script.php-rw-r–r– 1 root root 1116 may 26 18:01 /etc/passwd運行 script.php ?php假如安全模式被激活,則將會導致以下錯誤: warning: safe mode restriction in effect. the script whose uid is 500 is notallowed to access /etc/passwd owned by uid 0 in /docroot/script.php on line 2同時,或許會存在這樣的環境,在該環境下,寬鬆的 gid 檢查已經足夠,但嚴格的 uid 檢查反而是不適合的。您可以用 safe_mode_gid 選項來控制這種檢查。假如設置為 on 則進行寬鬆的 gid 檢查;設置為 off(默認值)則進行 uid 檢查。除了 safe_mode 以外,假如您設置了 open_basedir 選項,則所有的文件操作將被限制在您指定的目錄下。例如: directory /docrootphp_admin_value open_basedir /docroot/directory假如您在設置了 open_basedir 選項後運行同樣的 script.php,則其結果會是: warning: open_basedir restriction in effect. file is in wrong directory in/docroot/script.php on line 2您也可以單獨地屏蔽某些函數。

php調用shell的方法技巧

php調用shell的方法技巧

一、配置

查看php.ini中配置是否打開安全模式,主要是以下三個地方

safe_mode = (這個如果為off下面兩個就不用管了)

disable_functions =

safe_mode_exec_dir=

二、使用

由於PHP基本是用於WEB程序開發的,所以安全性成了人們考慮的一個重要方面。於是PHP的設計者們給PHP加了一個門:安全模式。如果運行在安全模式下,那麼PHP腳本中將受到如下四個方面的限制:

① 執行外部命令

② 在打開文件時有些限制

③ 連接MySQL資料庫

④ 基於HTTP的認證

在安全模式下,只有在特定目錄中的外部程序才可以被執行,對其它程序的調用將被拒絕。這個目錄可以在php.ini文件中用 safe_mode_exec_dir指令,或在編譯PHP是加上–with-exec-dir選項來指定,默認是/usr/local/php /bin。

如果你調用一個應該可以輸出結果的外部命令(意思是PHP腳本沒有錯誤),得到的’卻是一片空白,那麼很可能你的網管已經把PHP運行在安全模式下了。

三、如何做?

在PHP中調用外部命令,可以用如下三種方法來實現:

1) 用PHP提供的專門函數

PHP提供共了3個專門的執行外部命令的函數:system(),exec(),passthru()。

system()

原型:string system (string command [, int return_var])

system()函數很其它語言中的差不多,它執行給定的命令,輸出和返回結果。第二個參數是可選的,用來得到命令執行後的狀態碼。

例子:

複製代碼 代碼如下:system(“/usr/local/bin/webalizer/webalizer”);

exec()

原型:string exec (string command [, string array [, int return_var]])

exec() 函數與system()類似,也執行給定的命令,但不輸出結果,而是返回結果的最後一行。雖然它只返回命令結果的最後一行,但用第二個參數array可以得到完整的結果,方法是把結果逐行追加到array的結尾處。所以如果array不是空的,在調用之前最好用unset()最它清掉。只有指定了第二個參數時,才可以用第三個參數,用來取得命令執行的狀態碼。

例子:

複製代碼 代碼如下:exec(“/bin/ls -l”);

exec(“/bin/ls -l”, $res);

#$res是一個數據,每個元素代表結果的一行

exec(“/bin/ls -l”, $res, $rc);

#$rc的值是命令/bin/ls -l的狀態碼。成功的情況下通常是0

passthru()

原型:void passthru (string command [, int return_var])

passthru() 只調用命令,不返回任何結果,但把命令的運行結果原樣地直接輸出到標準輸出設備上。所以passthru()函數經常用來調用象pbmplus(Unix 下的一個處理圖片的工具,輸出二進位的原始圖片的流)這樣的程序。同樣它也可以得到命令執行的狀態碼。

例子:

複製代碼 代碼如下:header(“Content-type: image/gif”);

passthru(“./ppmtogif hunte.ppm”);

希望本文所述對大家的PHP程序設計有所幫助。

;

php設置set_time_limit(0)後還是會停止

set_time_limit(0);

當php運行於安全模式時,此功能不能生效。除了關閉安全模式或改變php.ini中的時間限制,沒有別的辦法。

php運行於安全模式,最後一步恢復欄目目錄不成功,有救嗎?

恢復欄目不成功,帶表你的目錄許可權不夠,系統無法建立欄目目錄。

什麼是php 的safe mode? php.exe? php-cgi.exe? php-win.exe?

安全模式下,PHP程序的行為被進行了限制,比如不能執行某些函數,只能打開指定文件夾的文件等。一般在你的主機提高個人網站,就是PHP的程序所有者不是你本人的時候,需要設置安全方式。

php.exe是提供來在命令行執行PHP文件的工具,比如你在有文件ABC.PHP,那麼你可以在CMD命令提示符下執行命令php.exe abc.php來運行這個PHP文件。

php-cgi.exe是提供來作為CGI使用的,區別是在文件輸出所有內容之前,會自動輸出一個下面的HTTP頭:

X-Powered-By: PHP/5.2.5

Content-type: text/html

php-win.exe也可以執行PHP文件,區別是大打開控制台,不顯示輸出內容。可以用來編寫無需顯示界面的文件處理、網路服務等程序。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/160541.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-21 01:14
下一篇 2024-11-21 01:14

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 手機安全模式怎麼解除?

    安全模式是一種手機自身的保護模式,它會禁用第三方應用程序並使用僅限基本系統功能。但有時候,安全模式會使你無法使用手機上的一些重要功能。如果你想解除手機安全模式,可以嘗試以下方法: …

    編程 2025-04-28
  • Qt State Machine與狀態機模式

    本文將介紹Qt State Machine和狀態機模式在Qt中的實現。Qt提供了QStateMachine和QState兩個類,可以方便地實現狀態機模式,並且能有效地處理複雜的、多…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • 顯示C++設計模式

    本文將詳細介紹顯示C++設計模式的概念、類型、優點和代碼實現。 一、概念 C++設計模式是在軟體設計階段定義,用於處理常見問題的可重用解決方案。這些解決方案是經過測試和驗證的,並已…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • Centos7進入單用戶模式的解釋

    本文將介紹如何在Centos7中進入單用戶模式,並從以下幾個方面進行詳細的闡述。 一、Centos7進入單用戶模式的解答 在Centos7中進入單用戶模式需要執行以下步驟: 1. …

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27

發表回復

登錄後才能評論