Time of Update: 2016-07-13
本文章來給大家總結一下在php中常用的一些防php注入,sql注入的一些方法介紹,在php中提供了htmlspecialchars/addslashes/stripslashes/strip_tags/mysql_real_escape_string等幾個函數,有需要瞭解的朋友可參考。下面針對常用表單特殊字元處理進行總結:測試字串: 代碼如下複製代碼 $dbstr='D:testhttp://www.bKjia.c0m,天緣部落格'!='1' OR '1'PHP OUTPUT"; ?>
Time of Update: 2016-07-13
eval函數可以說是一個危險的函數,但也是一個很有用的函數,在我們php手冊上會看到關於eval函數的這和一句介紹eval() 函數把字串按照 PHP 代碼來計算,意思它是可以執行php檔案哦。eval(phpcode) 必需。規定要計算的 PHP 代碼。例1 代碼如下複製代碼 $string = '杯子';$name = '咖啡';$str = '這個 $string 中裝有 $name.';echo $str;eval( "$str = "$str";" );echo $str;?
Time of Update: 2016-07-13
雖然國內很多PHP程式員仍在依靠addslashes防止SQL注入,還是建議大家加強中文防止SQL注入的檢查。addslashes的問題在 於駭客 可以用0xbf27來代替單引號,而addslashes只是將0xbf27修改為0xbf5c27,成為一個有效多位元組字元,其中的0xbf5c仍會
Time of Update: 2016-07-13
在我們做留言板時經常會需要去屏蔽關鍵字一些關鍵字,下面我來介紹利用txt儲存要屏蔽關鍵字,然後再根據使用者提交的資料進行過濾。先看strpos函數strpos() 函數返回字串在另一個字串中第一次出現的位置。如果沒有找到該字串,則返回 false。文法strpos(string,find,start)參數 描述 string 必需。規定被搜尋的字串。 find 必需。規定要尋找的字元。 start
Time of Update: 2016-07-13
CSRF站外類型的漏洞其實就是傳統意義上的外部提交資料問題,一般程式員會考慮給一些留言評論等的表單加上浮水印以防止SPAM問題,但是為了使用者的體驗性,一些操作可能沒有做任何限制,所以攻擊者可以先預測好請求的參數,在站外的Web頁面裡編寫javascript指令碼偽造檔案請求或和自動認可的表單來實現GET、POST請求,使用者在工作階段狀態下點選連結訪問站外的Web頁面,用戶端就被強迫發起請求。瀏覽器的安全缺陷現在的Web應用程式幾乎都是使用Cookie來識別使用者身份以及儲存工作階段狀態,但是
Time of Update: 2016-07-13
我們在做留言系統時經常會想把一些不出現的敏感詞過濾掉了,下面是一個簡單的實現,其實我們可以利用資料庫來儲存這些資訊,然後查出來再作判斷即可。 代碼如下複製代碼 /用Regex(把髒話想替換成什麼就替換成什麼) $str = "aa=!!|bb=@@|cc=##|dd=$$|ee=%%|ff=^^|gg=&&"; $arr = explode('|',$str); foreach($arr as $key=>$val) {
Time of Update: 2016-07-13
程式碼的安全是一個程式員對開發的應用方面的多方面的素質體現,下面我來總結一下自己的經驗,有需要瞭解朋友可參考一下。 百度一下。設定open_basedir後只有指定的目錄和子目錄下的php指令碼才會被執行。用php讀取open_basedir以外的目錄或檔案會報錯許可權不足一般虛擬機器主機供應商都是設定為/tmp和/home這是使用者習慣了,我們要想辦法解決這些問題了,下面總結了一些php安全問題。1.include的時候要小心,要判斷你本地是否有這個檔案,以免造成安全性漏洞。比如:
Time of Update: 2016-07-13
下面一款防止php頁面給sql注入的一個程式碼,有需要的朋友可參考。以下代碼實現過濾php的$_GET 和$_POST參數 代碼如下複製代碼 /*** 安全防範*/function Add_S($array){foreach($array as $key=>$value){if(!is_array($value)){$value =
Time of Update: 2016-07-13
在用php開發項目時很多時間我們模組化的開發,這時就可以可能存在很多安全隱藏了,下面是我總結的一些php 項目代碼的安全總結,有需要瞭解的同學可參考。1: 基礎型, include $module.'.php'; $module假如直接用GET上得到, 那這是個非常毀滅性的bug, linux下讓你痛不欲生, windows下讓你傾家當產, 這類安全性一般都會被人直接發現, 而有效地阻止. 假如你連這點都沒做到, 請問你是否稱得上合格的程式員? 2: 質的安全. 許多人會說,
Time of Update: 2016-07-13
在php5的環境中我們的$_SERVER變數將不再受magic_quotes_gpc的保護,至於程式該如何加強自己的安全性,下面我們總結了怎麼保護php中的cookie,get,post,files資料哦,有需要的朋友可參考一下。 代碼如下複製代碼 $magic_quotes_gpc =
Time of Update: 2016-07-13
在很多時間我們php中的很多函數是沒有用上的,而且對網站有存在很大的安全問題,下面我們利用PHP.ini 裡有個 disable_functions 開關選項來關閉一些不需要使用的函數。如果禁止了會出現如下提示Warning: phpinfo() has been disabled for security reasons屏蔽函數執行個體: 代碼如下複製代碼 disable_functions= phpinfo,dl, exec, system
Time of Update: 2016-07-13
本文章介紹了使用者自訂的addslashes函數,他可以自動過濾,post,get過來的非法資料哦。 代碼如下複製代碼 @set_magic_quotes_runtime(0); $MQG = get_magic_quotes_gpc(); if(!$MQG && $_POST) $_POST = daddslashes($_POST); if(!$MQG && $_GET) $_GET = daddslashes($_GET); //轉譯字元函數 function
Time of Update: 2016-07-13
文章介紹了大致的關於如何在 php.ini中做一些常用的安全配置,有需要的同學可參考一下。(1)開啟php的安全模式php的安全模式是個非常重要的內嵌的安全機制,能夠控制一些php中的函數,比如system(),同時把很多檔案操作函數進行了許可權控制,也不允許對某些關鍵字檔案的檔案,比如/etc/passwd,但是預設的php.ini是沒有開啟安全模式的,我們把它開啟:safe_mode =
Time of Update: 2016-07-13
在php中為我們提供了一個函數var_export 他可以直接將php代碼入到一個檔案中哦。 代碼如下複製代碼 var_export($times,true);後面不加true不能寫入檔案喲$fp = fopen('aa.txt','w+');fwrite($fp,var_export($times,true));fclose($fp); 方法二利用serializ與unserialize函數 代碼如下複製代碼 if(isset($_POST['sub'])){ $
Time of Update: 2016-07-13
有個前提條件是我們的頁面必須是php類型的頁面,如果你產生了html靜態頁面這種方法就不可行了哦,下面我們來看看php實現禁止IP段訪問網站的代碼. 代碼如下複製代碼 //加IP訪問限制 if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) { $userip = getenv('HTTP_CLIENT_IP'); }
Time of Update: 2016-07-13
作者總結了關於在CC指令碼攻擊的一些問題及防CC指令碼攻擊的一些解決方案,有需要的朋友可參考一下。1,登入進VPS控制台,準備好隨時重啟VPS。2,關閉Web Server先,過高的負載會導致後面的操作很難進行,甚至直接無法登入SSH。3,以防萬一,把設定的Web
Time of Update: 2016-07-13
大家都知道使用$_REQUEST可以直接省去了判斷post,get一些代碼,使用起來更簡單,但是如果要詳細的去想我們會覺得$_REQUEST太可怕了。下面看分析。我們都知道,處理表單資料,可以使用PHP的$_GET和$_POST這兩個超全域變數,具體是哪個由form表單提交時的method指定。除此之外PHP還為我們提供了$_REQUEST數組。但是其不僅包含$_GET和$_POST的所有資料元素,同時其還會包含$_COOKIE這個超全域數組的所有資料元素。可是大家有沒有想過,如果這三個數組裡面
Time of Update: 2016-07-13
文章分析了關於PHP5.2.X防止Hash衝突拒絕服務的攻擊的Patch方法,有需要了朋友可參考一下。上周的時候Dmitry突然在5.4發布在即的時候, 引入了一個新的配置項:Added max_input_vars directive to prevent attacks based on hash collision這個預防的攻擊, 就是”通過調用Hash衝突實現各種語言的拒絕服務的攻擊漏洞”(multiple implementations
Time of Update: 2016-07-13
還記得我之前說的PHP Hash Collisions Ddos漏洞吧? 最初的時候, 開發組給出的修複方案, 採用的是如果超過max_input_vars, 就報錯(E_ERROR), 繼而導致PHP出錯結束. 而後來, 為了更加輕量級的解決這個問題, 我們又改善了一下, 變成了如果超過max_input_vars, 就發出警告(E_WARNING), 並且不再往目的數組添加, 但是流程繼續. 然後我們發布了5.3.9.這個新的修複方法初衷是好的,
Time of Update: 2016-07-13
自己瞭解php中sql注入一些方法介紹,下面介紹的全部是最常見的sql注入方法了,有需要的朋友可參考一下。何為注入?比如我們在查詢資料庫的時候,我們通過文章的id號來取出這篇文章的所有資訊。那麼SQL語句可以這樣寫: 代碼如下複製代碼 select * from blog where id=5 id的值通過使用者的操作來傳遞,一般是GET方式,形如read.php?id=5。這樣看起來是沒有任何問題,但是如果我們稍微改下SQL語句: 代碼如下複製代碼 select *