當前位置:首頁 » 編程語言 » phpsafemode

phpsafemode

發布時間: 2023-07-05 13:34:52

⑴ 如何關閉php安全模式

php安全模式:safe_mode=on|off
啟用safe_mode指令將對在共享環碰瞎境中使用PHP時可能有危險的語言特性有所限制。可以
將safe_mode是指為布爾值on來啟用,或者設置為
off禁用。它會比較執行腳本UID(用戶ID)和腳本嘗試訪問的文件的UID,以此作為限制機制雹吵源的基礎。如果UID相同,則執行腳本;否則,腳本失敗。
具體地,當啟用安全模式時,一些限制將生效。
1、
所有輸入輸出函數(例如fopen()、file()和require())的適用會受到限制,只能用於與調用這些函數的腳本有相同擁有者的文件。例如源態,
假定啟用了安全模式,如果Mary擁有的腳本調用fopen(),嘗試打開由Jonhn擁有的一個文件,則將失敗。但是,如果Mary不僅擁有調用
fopen()的腳本,還擁有fopen()所調用的文件,就會成功。
2、如果試圖通過函數popen()、system()或exec()等執行腳本,只有當腳本位於safe_mode_exec_dir配置指令指定的目錄才可能。
3、HTTP驗證得到進一步加強,因為驗證腳本用於者的UID劃入驗證領域范圍內。此外,當啟用安全模式時,不會設置PHP_AUTH。
4、如果適用Mysql資料庫伺服器,鏈接MySQL伺服器所用的用戶名必須與調用mysql_connect()的文件擁有者用戶名相同。

⑵ 如何讓PHP有許可權執行linux下的命令

最近幫一個朋友搞個東西,但是用的是比較笨的方法,代碼如下--------主要是讓PHP獲取更大的許可權去執行LINUX命令,有許可權去重啟nginx服務或者重啟Apache服務。
<?php
// 作用取得客戶端的ip、地理信息、瀏覽器、本地真實IP
//此文檔編碼類型:utf-8
//程序使用:
//include("XXX.php") //引入類
// $gifo = new get_gust_info();//實例化
// $gifo->GetBrowser(); //獲得訪客瀏覽器類型
// $gifo->GetLang(); //獲得訪客瀏覽器語言
// $gifo->GetOs(); //獲取訪客操作系統
// $gifo->Getip(); //獲得訪客真實ip
// $gifo->get_onlineip(); //獲得本地真實IP
// $gifo->Getaddress($ip); //參數 $ip 是可選的,默認返回一個二維數組包含當前訪客所在地的相關信息
//

⑶ php如何設置時間限制

PHP如何設置頁面最大執行時間

方法:
1、在php.ini文件中 max_execution_time 代表了最大執行時間,其默認值為30。

2、set_time_limit(int seconds);這個函數可以設定,不過據說要在linux下才有用,而且在php.ini中的safe_mode = off

3、ini_set('max_execution_time',最大時間);

⑷ 6.如何禁止php服務程序中不安全的功能

為了使php程序更安全,很多站長都選擇了禁用一些比較敏感的函數,那影響php安全的函數到底有哪些呢,下面我們列出了一些:
1、phpinfo()
功能描述:輸出 PHP 環境信息以及相關的模塊、WEB 環境等信息。
危險等級:中
2、passthru()
功能描述:允許執行一個外部程序並回顯輸出,類似於 exec()。
危險等級:高
3、exec()
功能描述:允許執行一個外部程序(如 UNIX Shell 或 CMD 命令等)。
危險等級:高
4、system()
功能描述:允許執行一個外部程序並回顯輸出,類似於 passthru()。
危險等級:高
5、chroot()
功能描述:可改變當前 PHP 進程的工作根目錄,僅當系統支持 CLI 模式
PHP 時才能工作,且該函數不適用於 Windows 系統。
危險等級:高
6、scandir()
功能描述:列出指定路徑中的文件和目錄。
危險等級:中
7、chgrp()
功能描述:改變文件或目錄所屬的用戶組。
危險等級:高
8、chown()
功能描述:改變文件或目錄的所有者。
危險等級:高
9、shell_exec()
功能描述:通過 Shell 執行命令,並將執行結果作為字元串返回。
危險等級:高
10、proc_open()
功能描述:執行一個命令並打開文件指針用於讀取以及寫入。
危險等級:高
11、proc_get_status()
功能描述:獲取使用 proc_open() 所打開進程的信息。
危險等級:高
12、error_log()
功能描述:將錯誤信息發送到指定位置(文件)。
安全備註:在某些版本的 PHP 中,可使用 error_log() 繞過 PHP safe mode,
執行任意命令。
危險等級:低
13、ini_alter()
功能描述:是 ini_set() 函數的一個別名函數,功能與 ini_set() 相同。
具體參見 ini_set()。
危險等級:高
14、ini_set()
功能描述:可用於修改、設置 PHP 環境配置參數。
危險等級:高
15、ini_restore()
功能描述:可用於恢復 PHP 環境配置參數到其初始值。
危險等級:高
16、dl()
功能描述:在 PHP 進行運行過程當中(而非啟動時)載入一個 PHP 外部模塊。
危險等級:高
17、pfsockopen()
功能描述:建立一個 Internet 或 UNIX 域的 socket 持久連接。
危險等級:高
18、syslog()
功能描述:可調用 UNIX 系統的系統層 syslog() 函數。
危險等級:中
19、readlink()
功能描述:返回符號連接指向的目標文件內容。
危險等級:中
20、symlink()
功能描述:在 UNIX 系統中建立一個符號鏈接。
危險等級:高

⑸ PHP引用文件總是說不存在,但是文件名名存在的

估計是虛岩你將safe_mode設置差態御為ON了吧。
有2中解決辦法,
1、將php.ini中的
safe_mode = On
修改為
safe_mode = Off
2、將你需閉鋒要include的目錄追加到
safe_mode_include_dir =
後面。

⑹ 如何讓PHP報錯

首先需要確定是否打開了錯誤報告,方法有兩個:
1.可以查看PHP配置文件,看是否打開錯誤報告:
display_errors = On
2.PHP腳本中有動態設置php.ini配置文件的方法,可以設置如下 :
ini_set('display_errors', 'On');
其次,需要設置錯誤報告級別:
error_reporting = E_ALL; // 最嚴格的錯誤報告級別, 一般在開發階段開啟
error_reporting = E_ALL &~ E_NOTICE // 除了notice以外的錯誤
error_reporting = E_ERROR | E_PARSE | e_CORE_ERROR // 只考慮致命的運行時錯誤,新解析錯誤和核心錯誤 。一般在生產環境中使用

⑺ 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程序設計有所幫助。

;
熱點內容
敢死連狙擊手之無名高地ftp 發布:2025-02-09 11:27:21 瀏覽:583
lol天使輔助腳本 發布:2025-02-09 11:24:39 瀏覽:139
溯源碼怎麼生成 發布:2025-02-09 11:15:15 瀏覽:442
android70flash 發布:2025-02-09 11:15:06 瀏覽:725
如何查看伺服器拒絕信息 發布:2025-02-09 11:13:07 瀏覽:946
靜態編譯失敗怎麼回事 發布:2025-02-09 11:12:54 瀏覽:215
sql能力 發布:2025-02-09 10:43:50 瀏覽:983
編譯framework 發布:2025-02-09 10:42:11 瀏覽:382
五子棋對戰演算法 發布:2025-02-09 10:12:19 瀏覽:713
php樹菜單 發布:2025-02-09 10:04:10 瀏覽:360