解析php安全性問題中的 Null 字元問題

2022-09-29 22:24:20 字數 990 閱讀 5081

由於 php 的檔案系統操作是基於 c 語言的函式的,所以它可能會以您意想不到的方式處理 null 字元。 null程式設計客棧字元在 c 語言中用於標識字串結束,乙個完整的字串是從其開頭到遇見 null 字元為止。 以下**演示了類似的攻擊:

example #1 會被 null 字元問題攻擊的**

複製** **如下:

<?php

$file = $_get['file']; // "../../etc/passwd\0"

if (file_exists('/home/wwwrun/'.$file.'.php'))

?>

因此,任何用於操作檔案系統的字串(譯註:特別是程式外部輸入的字串)都必須經過適當的檢查。以下是上述例子的改進版本:

example #2 驗證輸入的正確做法

複製** **如下:

<?php

$file = $_get['file'];

// 對字串進行白名單檢查

switch ($file)

?>

乙個函式錯誤就可能暴露系統正在使用的資料庫,或者為攻擊者提供有關網頁、程式或設計方面的有用資訊。攻擊者往往會順藤摸瓜地找到開放的資料庫埠,以及頁面上某些 bug 或弱點等。比如說,攻擊者可以一些不正常的資料使程式出cjszmgbnf錯,來探測指令碼中認證的順序(通過錯誤提示的行號數字)以及指令碼中其它位置可能洩露的資訊。

乙個檔案系統或者 cjszmgbnfphp 的錯誤就會暴露 web伺服器具有什麼許可權,以及檔案在伺服器上的組織結構。開發者自己寫的錯誤**會加劇此問題,導致洩漏了原本隱藏的資訊。

有三個常用的辦法處理這些問題。第乙個是徹底地檢查所有函式,並程式設計客棧嘗試彌補大多數錯誤。第二個是對**系統徹底關閉錯誤報告。第三個是使用 php 自定義的錯誤處理函式建立自己的錯誤處理機制。根據不同的安全策略,三種方法可能都適用。

本文標題: 解析php安全性問題中的:null 字元問題

本文位址: /wangluo/php/97054.html

安全性問題

更改預設密碼 大量關鍵資訊 金融的 市場的 私人的 難以置信地在 inter 上失竊,不僅因為不夠嚴密的安全體系結構,還因為不負責任地留下了資料庫和系統的預設安裝密碼。如果您不希望成為上述的一員,一定要更改 rdbms windows nt 計算機和其他資源中眾所周知的使用者預設登入密碼。檢查入口處...

前端安全性問題

csrf cross site request forgery 即跨站請求偽造是一種常見的web攻擊。攻擊原理 a 使用者開啟瀏覽器,訪問受信任 a,輸入使用者名稱和密碼請求登入 a b 在使用者資訊通過驗證之後,a產生cookie資訊並返回給瀏覽器,此時使用者登入 a成功,可以正常傳送請求到 a ...

執行緒安全性問題

相同的票數,比如5這張票被賣了多回。不存在的票,比如0票與 1票,是不存在的。這種問題,幾個視窗 執行緒 票數不同步了,這種問題稱為執行緒不安全。執行緒安全問題都是由全域性變數及靜態變數引起的。若每個執行緒中對全域性變數 靜態變數只有讀操作,而無寫操作,一般來說,這個全域性變數是執行緒安全的 若有多...