PHP安全之道學習筆記4 系統命令注入

2022-01-10 00:38:23 字數 1122 閱讀 1326

我們有時候寫**會用php指令碼去呼叫系統函式完成業務功能,但是一些系統函式屬於高危操作,一旦被webshell或者抓住漏洞則後患極大。

下面整理如下風險系統函式.

該函式可以執行系統命令,並且返回輸出結果到$output中。具體使用請參考官網。

例如 使用者訪問 http://localhost/exec.php?cmd=ls -al,cmd中的命令將被執行.

<?php 

echo exec($_get["cmd"], $output);

foreach($output as $value)

該函式和exec函式類似,唯一不同是直接返回結果,無需賦值給第二個引數變數。

<?php

system($_get["cmd"]);

<?php

passthru($_get["cmd"]);

這是我比較也喜歡用的函式,通過執行shell命令並返回完整輸出字串,和執行shell效果一樣。

<?php

$output = shell_exec($_get["cmd"]);

echo $output;

pcntl是linux系統下的乙個擴充套件,可以支援php實現多執行緒。

<?php

pcntl_exec($_get["cmd"], $_get["args"]);

為了防止命令注入,我們可以關注的方面比較多,如下:

disable_functions=exec,system,shell_exec,passthru,popen,pcntl_exec

有人可能會用如果我一定要用到這些函式來實現功能呢?

那我們可以自定義實現,或者在執行的時候將邏輯判斷健壯性加強,增加一些必要判斷邏輯。

在php.ini檔案中設定如下:

safe_mode = on

safe_mode_exec_dir = /usr/local/php/bin

引數盡量使用引號包裹,並在拼接的時候使用addslashes函式進行轉義。

PHP安全之道學習筆記6 密碼安全

最近幾年使用者資料洩露越發頻繁,一些使用php技術的大型 被暴庫或者脫庫,facebook公司曾因為此類事件股價 從長遠發展來看,使用者的資料安全對於 來說至關重要,所以開發者需要關注資料相關的安全,並提高一些對敏感資料的技術性保護。使用者資料的安全往往和使用者密碼安全息息相關。使用者將賬號和相關資...

PHP安全之道學習筆記1 PHP專案安全設定

在全球範圍來看,超過了80 的 是使用php進行搭建的,由於指令碼語言和早期版本設計的諸多原因,php專案存在不少安全隱患。從配置選項來看,可以做如下的優化。display errors off 不要將錯誤堆疊資訊直接輸出到網頁上,防止黑客加以利用相關資訊。正確的做法是 把錯誤日誌寫到日誌檔案中,方...

Web前端開發修煉之道 學習筆記一

1 前期的構思很重要,是乙個先慢後快的過程 2 制定規範 3 團隊的分工與合作 2.1 語義化標籤,那如何評判?2.2 語義化的標題和內容模組 html部分 更多 段落一的內容根據瀏覽器的預設樣式 段落二的內容 css部分 title title h2 p strong2.3 語義化的表單模組 ht...