導航:首頁 > 編程語言 > phpsniffer

phpsniffer

發布時間:2022-11-29 00:35:40

㈠ 關於windows下安裝apache,php,mysql問題

apache嗎..反正幾乎是一路next就可以裝好了..不過你如果裝了IIS..就要注意埠問題..可能會有沖突..mysql也是.一路next,php嗎..我是這么樣的..
1.下載下來的php包解壓..文件夾最好直接命名成php.
2.將php.ini-recommended改名為php.ini(這個是php的配置文件).放到c:\windows下(不放這里好像會有問題)
3.php.ini設置:extension_dir = "c:\php\ext"設置成你的ext文件夾的目錄,去掉extension=php_mysql.dll前面的分號(載入mysql擴展).需要什麼擴展可以根據需要修改.
4.apache的設置:apache安裝目錄下的conf文件夾下.找到httpd.conf,DocumentRoot "d:/wwwroot"
這里是你的網站的目錄,
在最後添加
LoadMole php5_mole "c:/php/php5apache2_2.dll"(載入php模塊)
AddType application/x-httpd-php .php (可解析的php擴展名)
AddType application/x-httpd-php-source .phps (這個不記得了.反正肯定要的)

如果發現許可權不夠.找到這里
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
allow from all
options indexes
</Directory>
原來是deny from all改成allow from all.
最好打開apache的目錄顯示.
Options Indexes FollowSymLinks去掉前面的#,如果還不可以.就在上面的allow from all下面加上options indexes就OK了.

以上就是我的安裝經驗.不懂可以問我哦.我也是初學者.

當然你如果覺得麻煩.集成安裝包也是可以的.推薦xampp這個好.

說了那麼多.分給我吧.嘿嘿.

㈡ 如何上傳多個文件

含義 ENCTYPE="multipart/form-data" 說明:
通過 http 協議上傳文件 rfc1867協議概述,jsp 應用舉例,客戶端發送內容構造

1、概述在最初的 http 協議中,沒有上傳文件方面的功能。 rfc1867 (http://www.ietf.org/rfc/rfc1867.txt) 為 http 協議添加了這個功能。客戶端的瀏覽器,如 Microsoft IE, Mozila, Opera 等,按照此規范將用戶指定的文件發送到伺服器。伺服器端的網頁程序,如 php, asp, jsp 等,可以按照此規范,解析出用戶發送來的文件。Microsoft IE, Mozila, Opera 已經支持此協議,在網頁中使用一個特殊的 form 就可以發送文件。絕大部分 http server ,包括 tomcat ,已經支持此協議,可接受發送來的文件。各種網頁程序,如 php, asp, jsp 中,對於上傳文件已經做了很好的封裝。

2、上傳文件的實例:用 servelet 實現(http server 為 tomcat 4.1.24)1. 在一個 html 網頁中,寫一個如下的form :

load multi files :

text field :

用戶可以選擇多個文件,填寫表單其它項,點擊「提交」按鈕後就開始上傳給 http://192.168.29.65/upload_file/UploadFile

這是一個 servelet 程序注意 enctype="multipart/form-data", method=post, type="file" 。根據 rfc1867, 這三個屬性是必須的。multipart/form-data 是新增的編碼類型,以提高二進制文件的傳輸效率。具體的解釋請參閱 rfc18672. 服務端 servelet 的編寫現在第三方的 http upload file 工具庫很多。Jarkata 項目本身就提供了fileupload 包http://jakarta.apache.org/commons/fileupload/ 。

文件上傳、表單項處理、效率問題基本上都考慮到了。在 Struts 中就使用了這個包,不過是用 Struts 的方式另行封裝了一次。這里我們直接使用 fileupload 包。至於Struts 中的用法,請參閱 Struts 相關文檔。這個處理文件上傳的 servelet 主要代碼如下:

public void doPost( HttpServletRequest request, HttpServletResponse response )
{
DiskFileUpload diskFileUpload = new DiskFileUpload(); // 允許文件最大長度
diskFileUpload.setSizeMax( 100*1024*1024 ); // 設置內存緩沖大小
diskFileUpload.setSizeThreshold( 4096 ); // 設置臨時目錄
diskFileUpload.setRepositoryPath( "c:/tmp" );
List fileItems = diskFileUpload.parseRequest( request );
Iterator iter = fileItems.iterator(); for( ; iter.hasNext(); )
{
FileItem fileItem = (FileItem) iter.next();
if( fileItem.isFormField() ) { // 當前是一個表單項
out.println( "form field : " + fileItem.getFieldName() + ", " + fileItem.getString() );
} else {
// 當前是一個上傳的文件
String fileName = fileItem.getName();
fileItem.write( new File("c:/uploads/"+fileName) );
}

}}

為簡略起見,異常處理,文件重命名等細節沒有寫出。3、 客戶端發送內容構造假設接受文件的網頁程序位於 http://192.168.29.65/upload_file/UploadFile.假設我們要發送一個二進制文件、一個文本框表單項、一個密碼框表單項。文件名為 E:\s ,其內容如下:(其中的XXX代表二進制數據,如 01 02 03)abbXXXccc 客戶端應該向 192.168.29.65 發送如下內容:

POST /upload_file/UploadFile HTTP/1.1
Accept: text/plain, */*
Accept-Language: zh-cn
Host: 192.168.29.65:80
Content-Type:multipart/form-data;boundary=---------------------------7d33a816d302b6
User-Agent: Mozilla/4.0 (compatible; OpenOffice.org)
Content-Length: 424
Connection: Keep-Alive -----------------------------7d33a816d302b6
Content-Disposition:form-data;
name="userfile1";
filename="E:\s"Content-Type:
application/octet-stream abbXXXccc
-----------------------------7d33a816d302b6

Content-Disposition: form-data;

name="text1" foo

-----------------------------7d33a816d302b6

Content-Disposition: form-data;

name="password1" bar

-----------------------------7d33a816d302b6--

(上面有一個回車)此內容必須一字不差,包括最後的回車。

注意:Content-Length: 424 這里的424是紅色內容的總長度(包括最後的回車)
注意這一行:Content-Type: multipart/form-data; boundary=---------------------------7d33a816d302b6

根據 rfc1867, multipart/form-data是必須的.---------------------------7d33a816d302b6 是分隔符,分隔多個文件、表單項。

其中33a816d302b6 是即時生成的一個數字,用以確保整個分隔符不會在文件或表單項的內容中出現。前面的 ---------------------------7d 是 IE 特有的標志。

Mozila 為---------------------------71用手工發送這個例子,在上述的 servlet 中檢驗通過。

使用POST發送數據

以POST方式發送數據主要是為了向伺服器發送較大量的客戶端的數據,它不受URL的長度限制。POST請求將數據以URL編碼的形式放在HTTP正文中,欄位形式為fieldname=value,用&分隔每個欄位。注意所有的欄位都被作為字元串處理。實際上我們要做的就是模擬瀏覽器POST一個表單。以下是IE發送一個登陸表單的POST請求:

POST http://127.0.0.1/login.do HTTP/1.0
Accept: image/gif, image/jpeg, image/pjpeg, */*
Accept-Language: en-us,zh-cn;q=0.5
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Content-Length: 28
\r\n
username=admin&password=1234

要在MIDP應用程序中模擬瀏覽器發送這個POST請求,首先設置HttpConnection的請求方式為POST:

hc.setRequestMethod(HttpConnection.POST);

然後構造出HTTP正文:

byte[] data = "username=admin&password=1234".getBytes();

並計算正文長度,填入Content-Type和Content-Length:

hc.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
hc.setRequestProperty("Content-Length", String.valueOf(data.length));

然後打開OutputStream將正文寫入:

OutputStream output = hc.openOutputStream();
output.write(data);

需要注意的是,數據仍需要以URL編碼格式編碼,由於MIDP庫中沒有J2SE中與之對應的URLEncoder類,因此,需要自己動手編寫這個encode()方法,可以參考java.net.URLEncoder.java的源碼。剩下的便是讀取伺服器響應,代碼與GET一致,這里就不再詳述。

使用multipart/form-data發送文件

如果要在MIDP客戶端向伺服器上傳文件,我們就必須模擬一個POST multipart/form-data類型的請求,Content-Type必須是multipart/form-data。

以multipart/form-data編碼的POST請求格式與application/x-www-form-urlencoded完全不同,multipart/form-data需要首先在HTTP請求頭設置一個分隔符,例如ABCD:

hc.setRequestProperty("Content-Type", "multipart/form-data; boundary=ABCD");

然後,將每個欄位用「--分隔符」分隔,最後一個「--分隔符--」表示結束。例如,要上傳一個title欄位"Today"和一個文件C:\1.txt,HTTP正文如下:

--ABCD
Content-Disposition: form-data; name="title"
\r\n
Today
--ABCD
Content-Disposition: form-data; name="1.txt"; filename="C:\1.txt"
Content-Type: text/plain
\r\n

--ABCD--
\r\n

請注意,每一行都必須以\r\n結束,包括最後一行。如果用Sniffer程序檢測IE發送的POST請求,可以發現IE的分隔符類似於---------------------------7d4a6d158c9,這是IE產生的一個隨機數,目的是防止上傳文件中出現分隔符導致伺服器無法正確識別文件起始位置。我們可以寫一個固定的分隔符,只要足夠復雜即可。

發送文件的POST代碼如下:

String[] props = ... // 欄位名
String[] values = ... // 欄位值
byte[] file = ... // 文件內容
String BOUNDARY = "---------------------------7d4a6d158c9"; // 分隔符
StringBuffer sb = new StringBuffer();
// 發送每個欄位:
for(int i=0; i
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data; name=\""+ props[i] + "\"\r\n\r\n");
sb = sb.append(URLEncoder.encode(values[i]));
sb = sb.append("\r\n");
}
// 發送文件:
sb = sb.append("--");
sb = sb.append(BOUNDARY);
sb = sb.append("\r\n");
sb = sb.append("Content-Disposition: form-data; name=\"1\"; filename=\"1.txt\"\r\n");
sb = sb.append("Content-Type: application/octet-stream\r\n\r\n");
byte[] data = sb.toString().getBytes();
byte[] end_data = ("\r\n--" + BOUNDARY + "--\r\n").getBytes();
// 設置HTTP頭:
hc.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);
hc.setRequestProperty("Content-Length", String.valueOf(data.length + file.length + end_data.length));
// 輸出:
output = hc.openOutputStream();
output.write(data);
output.write(file);
output.write(end_data);
// 讀取伺服器響應:
// TODO...

㈢ PHP中有什麼好的代碼自動檢查工具嗎

通常的PHP集成開發軟體,如 PhpDesigner 、 Zend Studio、Eclipse 等等都內置有代碼檢查工具。如果想在外部進行PHP代碼檢查,可以參考以下資料:

PHP Mess Detector(
PHP項目體檢工具,根據你設定的標准(如單一文件代碼體積,未使用的參數個數,未使用的方法數)檢查PHP代碼,超出設定的標准時報警。

PHP Copy Paste Detector(
顧名思義,檢查冗餘代碼的

PHP Dead Code Detector(
看名字就知道了,檢查從未被調用過的方法

PHP Code Sniffer(
老牌代碼格式化工具,PHP寫的,Pear包,可自己hack,可集成到命令行里。

PHP Code Beautifier,只有Windows GUI,Windows CMD很難用

㈣ phpstorm怎麼刷新文件內容

1. 點擊菜單:File->Settings 或 按快捷鍵 Ctrl+Alt+S
2. 選擇Project Settings下的:PHP->Code Sniffer
3. 設置PHP Code Sniffer(phpcs) path為:E:wampbinpearphpcs.bat
4. 點擊Validate按鈕,說明設置OK

㈤ mac下面問什麼關掉phpstorm網站就出現502

2011年05月23日,PhpStorm 2.1 發布,商業PHP開發工具,該版本在性能和穩定性上都有重要的提升,新的Diff工具來比較目錄、圖像和DB的,「提取函數/方法的重構為PHP,「改變簽名的重構為JavaScript,在谷歌Chrome的JavaScript調試器,htaccess支持,新代碼檢查:「不一致的返回點」、「愚蠢的賦值和更多,@var PHPDoc注釋現在支持Netbeans / Zend風格,自動完成改進對於類的其他名稱空間和無能的完成啟用,HTML標簽樹高亮,重寫UI搜索/替換Misc。改進為支持的所有風險資本家和顯著的性能改進。[6]
2011年07月19日,PhpStorm發布了 2.1.2 bug 修復版本,同時發布的還有WebStorm,包含了重要的bug修復,以及在JS、PHP 和 CSS 支持上的顯著性能提升,建議所有用戶升級。[7]
2011年11月29日,PHPStorm 3.0 發布,帶來了很多新功能和修復,一共有700改動讓這個IDE變得更加易用,更加智能。[8]
2012年04月24日,PhpStorm 4.0 發布了,該版本完全兼容 PHP 5.4 特性以及支持 EMCAScript Harmony 。主要改進包括:完全支持 PHP 5.4 語言特性,支持 ECMAScript Harmony,使用 PHPUnit 的代碼覆蓋率,使用 PHP Code Sniffer 進行代碼檢查,支持 Drupal 代碼風格,新的 PHP 代碼檢查,更智能的 JavaScript 自動完成。[9]

㈥ acid+snort+mysql+php+apache問題!

有些 snort.conf 中的 rule 要調一調,根據自己的環境來調整
像我們都跑 Linux/Sun 的環境,沒有其他的, MSN 這種 rule
就完全不需要,至於像 icmp 這些幾乎也都沒有用處,不然你的
sensor/target (就是 snort) 一多,每天看都看不完(不看你裝這個做什麼)
所以,我們的 snort.conf 中的 alert rule 都壓在 50 條左右,
只記錄必要的都西就好.

另外,snort 也可以做 sniffer 工具,
若搭 Dynamic rule ,可以做到更 smart 的 sniffer

此外,platinum 兄對 mrtg 很熟悉,也可以透過 mrtg 將 alert 的
狀況畫成 mrtg 的圖表哦,只要把 snort 的 db 結構看一下就知道怎麼取
用了

㈦ phpstom安裝phpcodesniffer插件怎麼自動排版

下載PEAR文件,右鍵連接,選擇「連接另存為」go- pear.phar即可。
安裝REAR: 打開命令行工具(開始->運行->cmd)
cd c:\path\to\php\server\folder
然後運行下面命令進行安裝:
php go-pear.phar
按屏幕指令完成安裝。 如果使用的XAMPP則已經默認安裝了PEAR和PHP_CodeSniffer。
安裝PHP Code Sniffer
如果想了解得更加全面的話,可以去後盾人,那裡有一些豐富的視頻,你可以參考學習。

㈧ PHP如何獲取需要登陸後才能看到的網頁HTML代碼

實際上是個模擬登陸的問題,需要寫個登陸模塊,解決兩個問題:
1,請求登陸並刷新的函數部分:

<?php
/*****************函數部分**************************/
/*獲取指定網頁的內容
$url為網頁地址
*/
function getcontent($url){
if($open=file($url)){
$count=count($open);
for($i=0;$i<$count;$i++)
{
$theget.=$open[$i];
}
}else{
die('請求過多,超時,請刷新');
}
return $theget;
}
?>
2,偷取程序部分,也分兩部分,
1),PHP與XML不同之處是需要特殊的調用才能支持COOKIE.或者記錄SessionID(後面有說明程序)

php代碼如下
<?PHP
//登陸並保存COOKIE
$f = fsockopen("www.url.net",80);
$cmd = <<<EOT
GET /test/login.php?name=test&password=test HTTP/1.0

EOT;
fputs($f,$cmd);
$result = '';
$cookie = '';
$location = '';
while($line = fgets($f))
{
$result .= $line;
//取得location跟setCookie頭HTTP頭信息
$tmp = explode(":",$line);
if($tmp[0]=="Set-Cookie")
$cookie .= $tmp[1];
if($tmp[0]=="Location")
$location = $tmp[1];
}
fclose($f);
2),獲取頁面
//下面訪問你要訪問的頁面(這部分也可以參考下面的核心常式)
$f = fsockopen("www.url.net",80);l
//下面的cookie就是發送前頁保存下的的cookie
$cmd = <<<EOT
GET /test/test.php HTTP/1.0
cookie:$cookie

EOT;
fputs($f,$cmd);
while($line = fgets($f))
{
echo $line;
}
fclose($f);
?>

核心常式就是fsockopen();
不妨再給段代碼你瞧瞧:
--------------------------------------------------------------------------------

function posttohost($url, $data)
{
$url = parse_url($url);
if (!$url) return "couldn't parse url";
if (!isset($url['port'])) { $url['port'] = ""; }
if (!isset($url['query'])) { $url['query'] = ""; }
$encoded = "";
while (list($k,$v) = each($data))
{
$encoded .= ($encoded ? "&" : "");
$encoded .= rawurlencode($k)."=".rawurlencode($v);
}
$fp = fsockopen($url['host'], $url['port'] ? $url['port'] : 80);
if (!$fp) return "Failed to open socket to $url[host]";
fputs($fp, sprintf("POST %s%s%s HTTP/1.0", $url['path'], $url['query'] ? "?" : "", $url['query']));
fputs($fp, "Host: $url[host]");
fputs($fp, "Content-type: application/x-www-form-urlencoded");
fputs($fp, "Content-length: " . strlen($encoded) . "");
fputs($fp, "Connection: close");
fputs($fp, "$encoded");
$line = fgets($fp,1024);
if (!eregi("^HTTP/1\\.. 200", $line)) return $line ;
$results = ""; $inheader = 1;
while(!feof($fp))
{
$line = fgets($fp,1024);
if ($inheader && ($line == "" || $line == "\r")) {
$inheader = 0;
}
elseif (!$inheader) {
$results .= $line;
}
}
fclose($fp);
return $results;
}
$data=array();
$data["msg"]="HELLO THIS IS TEST MSG";
$data["Type"]="TEXT";
echo posttohost("http://url/xxx", $data);

應該說明白了吧?
另外登陸部分還有一種簡單方法是把SessionID保存下來

源代碼:

<?php
/*
* 得到網頁內容
* 參數:$host [in] string
* 主機名稱(例如: www.url.com.cn)
* 參數:$method [in] string
* 提交方法:POST, GET, HEAD ... 並加上相應的參數( 具體語法參見 RFC1945,RFC2068 )
* 參數:$str [in] string
* 提交的內容
* 參數:$sessid [in] string
* PHP的SESSIONID
*
* @返回 網頁內容 string
*/
function GetWebContent($host, $method, $str, $sessid = '')
{
$ip = gethostbyname($host);
$fp = fsockopen($ip, 80);
if (!$fp) return;
fputs($fp, "$method\r\n");
fputs($fp, "Host: $host\r\n");
if (!empty($sessid))
{
fputs($fp, "Cookie: PHPSESSID=$sessid; path=/;\r\n");
}
if ( substr(trim($method),0, 4) == "POST")
{
fputs($fp, "Content-Length: ". strlen($str) . "\r\n"); // 別忘了指定長度
}
fputs($fp, "Content-Type: application/x-www-form-urlencoded\r\n\r\n");
if ( substr(trim($method),0, 4) == "POST")
{
fputs($fp, $str."\r\n");
}
while(!feof($fp))
{
$response .= fgets($fp, 1024);
}
$hlen = strpos($response,"\r\n\r\n"); // LINUX下是 "\n\n"
$header = substr($response, 0, $hlen);
$entity = substr($response, $hlen + 4);
if ( preg_match('/PHPSESSID=([0-9a-z]+);/i', $header, $matches))
{
$a['sessid'] = $matches[1];
}
if ( preg_match('/Location: ([0-9a-z\_\?\=\&\#\.]+)/i', $header, $matches))
{
$a['location'] = $matches[1];
}
$a['content'] = $entity;
fclose($fp);
return $a;
}

/* 構造用戶名,密碼字元串 */
$str = ("username=test&password=test");
$response = GetWebContent("localhost","POST /login.php HTTP/1.0", $str);
echo $response['location'].$response['content']."<br>";
echo $response['sessid']."<br>";
if ( preg_match('/error\.php/i',$response['location']))
{
echo "登陸失敗<br>";
} else {
echo "登陸成功<br>";
// 不可以訪問user.php,因為不帶sessid參數
$response = GetWebContent("localhost","GET /user.php HTTP/1.0", '', '');
echo $response['location']."<br>"; // 結果:error.php?errcode=2

// 可以訪問user.php
$response = GetWebContent("localhost","GET /user.php HTTP/1.0", '', $response['sessid']);
echo $response['location']."<br>"; // 結果:user.php
}
?>

㈨ 使用Sniffer Pro進行arp攻擊

。。。。。
想攻擊別人還上網路問哦??
不怕被別人發現啊。。。。
呵呵。。。。。
我之前有玩過,具體步驟是這樣的(這里我就只給你SYN包啦!):
先用SNIFFER抓到你與你想功擊主機的通信包(最好是SYN包第一握手的,這樣就省去了很多事情),點擊捕到的包右鍵(Send Current Packet),來到編輯界面就應該沒問題了,之前有玩過的話就簡單啦,IP,MAC。自己的IP和MAC最好也改了它,狠點就改成被攻擊的IP和MAC。。之後就等著收效果就行了。
補充:
想要學會攻擊,那你必須要了解網路中的協議,還有它們在網路中存在包的格式內容,了解了這些就可以把攻擊玩的好了。
下面是SNIFFER的一些使用教程和對一些協議的詳解,希望對你有幫助。
http://bbs.56cto.com/viewthread.php?tid=12646

已發送教程到你的QQ...

㈩ sublime text php code sniffer 怎麼用

開啟調試 開啟調試方式也比較簡單,在想要加斷點的地方右鍵 xdebug->Add/Remove breakpoint 這樣項目在運行到本行的時候就會停止下來 然後開始調試,在菜單欄選擇 tools->xdebug->start debugging(launch browser) sublime會自動打開瀏覽器,進...

閱讀全文

與phpsniffer相關的資料

熱點內容
小米sd卡解壓 瀏覽:996
程序員那麼可愛陸漓替老袁說情 瀏覽:28
當女程序員遇見問題 瀏覽:746
32位編譯器什麼意思 瀏覽:355
php多參數函數 瀏覽:17
通達信板塊動作源碼 瀏覽:751
matlab完全自學一本通pdf 瀏覽:250
php源碼本地安裝 瀏覽:961
伺服器怎麼用不會斷電 瀏覽:301
主從伺服器有什麼用 瀏覽:213
jstlpdf 瀏覽:15
安卓原神在哪個app下載 瀏覽:808
單片機編程技術什麼意思 瀏覽:104
e點課堂源碼 瀏覽:46
免費打擊墊app哪個好 瀏覽:532
程序員必裝的6款軟體 瀏覽:750
基於單片機的遙控器設計 瀏覽:521
安卓如何取消圓圖標 瀏覽:11
收件伺服器怎麼樣 瀏覽:48
建築設計規范pdf 瀏覽:99