web服務器腳本安全 基礎學習 總結【對應php 腳本】

web服務器腳本安全 基礎學習 總結【對應php 腳本】

1 命令注入[windows dos, linux shell]

容易受到注入攻擊的php函數

system , exec ,passthru, shell_exec, eval,preg_replace, str_replace ,動態函數, call_user_func.

system :exec passthru shell_exec  執行shell

url 編碼與解碼  比如 使用上述函數 表單提交 傳入參數 執行 


2Eval 注入攻擊

使用Eval 執行存儲在php數據庫中的代碼  過濾的重要性

另外 :Eval 注入攻擊  preg_replace 正則表達式  /e

動態函數調用call_user_func.

 

3 應用可變變量的注入攻擊  foreach ($_GET as$key=>$value){$$key=$value;}

最好不要用可變變量  或者把相關用到的自己初始化的變量 寫到下面

防範注入攻擊

1 避免給使用相關函數

2 自定義函數或者函數庫

3 使用轉義參數函數 escapeshellarg(); 或者檢查, 過濾參數

4不要直接傳函數名稱 根據參數執行 函數 或者方法 可以自己if 判斷

5 使用apach php服務器的 安全模式 配置

safe_mode=on

  設置安全模式路徑 safe_mode_exec_dir=/函數命令 路徑 

客戶端腳本植入攻擊

防範  strip_tags() 去除腳本標籤

 htmlspecialchars() 從數據庫顯示出來的 數據 進行轉義 防止被植入的js腳本執行

 htmlentities()

 

4 xss漏洞主要是cookie 攻擊 使用htmlspecialchars  轉義

echo 顯示的 都要轉義

 

5 Sql數據的轉義 過濾 避免 sql注入

1. 1’ or ‘1’=’1 這類漏洞:

addslashes  進行單引號轉義 或者配置 自動 php.ini  magic_quotes_gpc=on

mysql_real_escape_string()

盜取密碼 或者可以刪整個表數據

相應的函數 轉義  整數 浮點等  intval() floatbval() doubleval()


6 CSRF跨網站請求僞造攻擊

僞造http請求

判斷網頁的來源

隱藏變量 eg: 生成隨機數 session 保存 操作前 判斷


7 會話劫持攻擊

定期修改session_id

關閉透明化[可以通過url 隱藏hidden去向服務器傳遞session_id] session_id  只從cookie獲取session_id

 //php.ini配置 session.user_trans_sid=0關閉

use_cookies=1 //使用cookie 

session.use_only_cookies=1//只使用cookies 

檢查瀏覽器是否變化  瀏覽器信息保存到seesion  判斷

 

8 Http響應拆分攻擊  目前不起作用


9文件上傳攻擊 【文件不可以被執行 危險】

 

關閉文件上傳/php.ini   file_upload=off

限制上傳文件大小  /php.ini  post_max_size   upload_max_size

 

檢查是否是真的上傳文件  is_upload_file()

檢查文件大小 內容類型

filesize() getimagesize() readfile()

 隱藏文件的路徑

 

改變臨時文件夾  php.ini upload_tmp_dir

 

遠程文件引入攻擊

關閉遠程調用

Php.ini allow_url

 通過url傳遞簡單 遠程域名

遠程文件的目錄穿越檢查  if(..)

數據庫暴庫  web服務器配置目錄安全性

另外 阿里的一篇文章 web安全漏洞 寫的不錯 ,可以去看下。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章