1. 用什麼工具檢測php網站是否存在注入漏洞
PHP的安全性現在是越來越好了PHP6。0版本都把存在的SQL漏洞都解決了
但是為了安全起見還是應該做安全檢測
檢測方法:SQL 注入法 、腳本代碼、參數傳遞等方法 具體情況參看PHP官方網站 安全篇章
2. php 伺服器怎麼監控多個下級工作站的網路狀態,cpu,磁碟使用情況呢
1,linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。其實應該通過PhysicalProcessorID來區分單核和雙核。而PhysicalProcessorID可以從cpuinfo或者dmesg中找到.flags如果有ht說明支持超線程技術判斷物理CPU的個數可以查看physicalid的值,相同則為同一個物理CPU2,查看內存大小:cat/proc/meminfo|grepMemTotal3,其他一些可以查看詳細linux系統信息的命令和方法:uname-a#查看內核/操作系統/CPU信息的linux系統信息命令head-n1/etc/issue#查看操作系統版本,是數字1不是字母Lcat/proc/cpuinfo#查看CPU信息的linux系統信息命令hostname#查看計算機名的linux系統信息命令lspci-tv#列出所有PCI設備lsusb-tv#列出所有USB設備的linux系統信息命令lsmod#列出載入的內核模塊env#查看環境變數資源free-m#查看內存使用量和交換區使用量df-h#查看各分區使用情況-sh#查看指定目錄的大小grepMemTotal/proc/meminfo#查看內存總量grepMemFree/proc/meminfo#查看空閑內存量uptime#查看系統運行時間、用戶數、負載cat/proc/loadavg#查看系統負載磁碟和分區mount|column-t#查看掛接的分區狀態fdisk-l#查看所有分區swapon-s#查看所有交換分區hdparm-i/dev/hda#查看磁碟參數(僅適用於IDE設備)dmesg|grepIDE#查看啟動時IDE設備檢測狀況網路ifconfig#查看所有網路介面的屬性iptables-L#查看防火牆設置route-n#查看路由表netstat-lntp#查看所有監聽埠netstat-antp#查看所有已經建立的連接netstat-s#查看網路統計信息進程ps-ef#查看所有進程top#實時顯示進程狀態用戶w#查看活動用戶id#查看指定用戶信息last#查看用戶登錄日誌cut-d:-f1/etc/passwd#查看系統所有用戶cut-d:-f1/etc/group#查看系統所有組crontab-l#查看當前用戶的計劃任務服務chkconfig–list#列出所有系統服務chkconfig–list|grepon#列出所有啟動的系統服務程序rpm-qa#查看所有安裝的軟體包cat/proc/cpuinfo:查看CPU相關參數的linux系統命令cat/proc/partitions:查看linux硬碟和分區信息的系統信息命令cat/proc/meminfo:查看linux系統內存信息的linux系統命令cat/proc/version:查看版本,類似uname-rcat/proc/ioports:查看設備io埠cat/proc/interrupts:查看中斷cat/proc/pci:查看pci設備的信息cat/proc/swaps:查看所有swap分區的信息
3. 如何使用PHP實時監控Linux伺服器的cpu,內存,硬碟信息
1,Linux下可以在/proc/cpuinfo中看到每個cpu的詳細信息。但是對於雙核的cpu,在cpuinfo中會看到兩個cpu。常常會讓人誤以為是兩個單核的cpu。
其實應該通過Physical
Processor
ID來區分單核和雙核。而Physical
Processor
ID可以從cpuinfo或者dmesg中找到.
flags
如果有
ht
說明
支持超線程技術
判斷物理CPU的個數可以查看physical
id
的值,相同則為同一個物理CPU
2,查看內存大小:
cat
/proc/meminfo
|grep
MemTotal
3,其他一些可以查看詳細
linux系統
信息的命令和方法:
uname
-a
#
查看內核/操作系統/
CPU信息
的linux系統信息命令
head
-n
1
/etc/issue
#
查看操作系統版本,是數字1不是字母L
cat
/proc/cpuinfo
#
查看CPU信息的linux系統信息命令
hostname
#
查看計算機名的linux系統信息命令
lspci
-tv
#
列出所有
PCI設備
lsusb
-tv
#
列出所有USB設備的linux系統信息命令
lsmod
#
列出載入的內核模塊
env
#
查看
環境變數
資源
free
-m
#
查看內存使用量和
交換區
使用量
df
-h
#
查看各分區使用情況
-sh
#
查看指定目錄的大小
grep
MemTotal
/proc/meminfo
#
查看內存總量
grep
MemFree
/proc/meminfo
#
查看空閑內存量
uptime
#
查看系統
運行時間
、用戶數、負載
cat
/proc/loadavg
#
查看系統負載磁碟和分區
mount
|
column
-t
#
查看掛接的分區狀態
fdisk
-l
#
查看所有分區
swapon
-s
#
查看所有
交換分區
hdparm
-i
/dev/hda
#
查看磁碟參數(僅適用於
IDE設備
)
dmesg
|
grep
IDE
#
查看啟動時IDE設備檢測狀況網路
ifconfig
#
查看所有網路介面的屬性
iptables
-L
#
查看防火牆設置
route
-n
#
查看
路由表
netstat
-lntp
#
查看所有監聽埠
netstat
-antp
#
查看所有已經建立的連接
netstat
-s
#
查看
網路統計
信息進程
ps
-ef
#
查看所有進程
top
#
實時顯示
進程狀態
用戶
w
#
查看活動用戶
id
#
查看指定用戶信息
last
#
查看
用戶登錄
日誌
cut
-d:
-f1
/etc/passwd
#
查看系統所有用戶
cut
-d:
-f1
/etc/group
#
查看系統所有組
crontab
-l
#
查看當前用戶的計劃任務服務
chkconfig
–list
#
列出所有系統服務
chkconfig
–list
|
grep
on
#
列出所有啟動的系統服務程序
rpm
-qa
#
查看所有安裝的軟體包
cat
/proc/cpuinfo
:查看CPU相關參數的linux系統命令
cat
/proc/partitions
:查看linux硬碟和分區信息的系統信息命令
cat
/proc/meminfo
:查看linux系統內存信息的linux系統命令
cat
/proc/version
:查看版本,類似uname
-r
cat
/proc/ioports
:查看設備io埠
cat
/proc/interrupts
:查看中斷
cat
/proc/pci
:查看pci設備的信息
cat
/proc/swaps
:查看所有swap分區的信息
4. php 如何實現批量監測網頁中的某一內容是否發生變化
<?php
header("content-type:text/html;charset=utf-8");
$fileurl="url2.txt";
$gdomain=@file_get_contents($fileurl,r);//獲取文件url2.txt內容
$gdomain=split(" ",$gdomain);
set_time_limit(0);
ob_end_flush();//關閉緩存
foreach($gdomainas$key=>$domain){
$url="http://".$domain;
$fp=@fopen($url,r)ordie("超時,或網路無法連接!");
$gcont=@file_get_contents($url);
$pattern1='<title>(.*)</title>';
@preg_match_all($pattern1,$gcont,$rg);
//保存到本地
$of=fopen('temp.txt','a');//創建並打開temp.txt
if($of){
if(!empty($rg[1])){
//
//對比兩個文本內容是否一致實現
//
//
echo"<ahref='$url'>$domain</a>當前標題:".$rg[1]."<br/>";
fwrite($of,$rg[1]);
}else{
echo"<ahref='$url'>$domain</a>標題不存在!<br/>";
fwrite($of,"null ");//標記為null
}
}
fclose($of);
flush();
sleep(3);
}
?>
5. 怎樣用PHP實現郵件監測
可以加點分數嗎~~~
我寫出來了,下面的程序調試通過:
<?php
//下面三行是伺服器、用戶、密碼,
$server='pop.163.com';
$user='[email protected]';
$pass='********';
//下面是進行檢測郵件的語句
$fp = fsockopen($server, 110, $errno, $errstr, 30);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$ret=fgets($fp);
if (substr($ret,0,3)!="+OK") echo "CONNECT ERROR: $ret\n";
fwrite($fp, "USER $user\n");
$ret=fgets($fp);
if (substr($ret,0,3)!="+OK") echo "USER ERROR: $ret\n";
fwrite($fp, "PASS $pass\n");
$ret=fgets($fp);
if (substr($ret,0,3)!="+OK") echo "PASS ERROR: $ret\n";
else if (preg_match_all('/(\d+)/', $ret, $reg)) echo "你有 {$reg[1][0]} 封新郵件,占 {$reg[1][1]} 位元組空間。";
else echo $ret;
fclose($fp);
}
?>
我的機器上運行的結果如下:
E:\ygb>php a.php
你有 1749 封新郵件,占 1050661745 位元組空間。
你稍微修改一下,使之可以在網頁上,讓用戶選擇伺服器、輸入用戶和密碼,這些我相信你會的吧,祝你好運。
6. PHP程序,如何監控內存情況
看到有人寫透視寶做php監控的原理圖,跟你分享下。我估計大家做的方式都是差不多。
PHP運行支撐的ZendEngine早在設計過程中已經預留了豐富的Hook,可以有效干涉處理過程中的幾個關鍵步驟。利用了以下幾個Hook,就能方便的獲取數據:
1. zend_compile_file & zend_compile_string
載入分析文件或字元串,本身就會造成非常大的IO,如果過多地執行載入,無疑會造成內存和CPU的消耗.通過這兩個hook,可以取得文件名、執行行數、使用內存和CPU佔用時間。
2.zend_execute & zend_execute_internal
通過這兩個hook的使用,我們可以准確地分析得出一個PHP應用中的類調用、方法調用、方法參數、內存佔用和CPU佔用,加以分析,便可以准確得出應用系統運行過程中的方法運行棧,API調用地址,SQL語句,CacheKey以及Cache命中等關鍵信息。
3.zend_throw_exception_hook
利用異常鉤子,可以准確地得到應用系統運行過程中出現的異常信息,當然包括異常發生的類方法位置,參數,異常code和異常message。
4.zend_error_cb
錯誤鉤子則更加直接,可以准確得到系統運行過程中出現的任何一個warning,代碼錯誤或語法錯誤。
7. php 檢測源代碼是否被改動過和是否項目中有增加或刪除的文件的實現思路
如果想自己做, hashtable是一定的
建一個hashtable, 儲存當前內容, 同時該hashtable的id也同樣可以用於作為文件功能等記錄的id之用, 然後無論是windows還是linux都可以cron的,去做一個php文件去匹配吧, 文件修改時間無所謂的, md5(file)更有意義
如果單純使用php, 遍歷目錄是必須的, 無論哪個os都提供文件動作的監控能力,但是這不在php的工作范圍內,所以無法實現所謂的監控,你可以看看同步類軟體,無論哪個操作系統都是直接去os的基層拿現成的東西來用,不用特地耗費資源去自己不斷遍歷目錄監控的,
svn/cvs是主動提交改動的, 而所謂監控,那就是被動形式了,只有在改動時才有動作的叫監控,
你要php實現源碼監控,一句話,不可能,只能做遞歸/迭代, 用hashtable處理並不斷操作hashdb
ps:文件功能你們都不寫進注釋嗎,注釋本來就有這種功能, 比如phpdoc-_
8. 請問php如何實現實時監控文件.
在服務端建立一個根據需要進行循環的PHP腳本就可以。
猜測一下,您的第二個問題,是不是想進行相關檢測以避免重復觸發這個腳本。
實際上,不建議由用戶行為觸發這個腳本,無論是服務端代碼,還是客戶端的非同步Ajax。
如果要用PHP腳本進行不停的循環監控,請聯系運維人員,伺服器啟動,即在服務端開始運行這個腳本,他們會向您提供解決方案的。
真正的建議是,如果有任何可能,都不要使用PHP腳本利用循環代碼進行服務端的監控。
不得不承認,這個方面PHP的穩定性還差一些,Java或許可以這么做,PHP就比較痛苦了。
比較可能的辦法是請運維人員幫忙,通報監控邏輯,然後請他安裝各種觸發條件調用相應的PHP代碼。
如果堅持使用PHP腳本進行相關工作,有兩個建議給您:
盡快釋放資源,無論腳本使用了什麼資源,包括文件、內存、資料庫等等,都盡快釋放,這種地方可萬萬不能偷懶,否則就是自虐了。
在這個腳本中進行獨立的手工日誌輸出,任何一層循環的入口都要進行記錄,這樣在監控失敗的時候才有辦法查找問題。