php參數化防注入,phpsql防注入函數

本文目錄一覽:

php怎樣使用參數化防止sql注入

可以使用php的pdo對象,有預處理查詢功能可以防止注入,再有,注入sql無非就是基於你sql的拼接問題影響的執行sql,也可以不用pdo預處理,把獲取查詢的參數裡面的非法字元比如單引號雙引號等這些字元手動過濾也可以的

PHP定義一個函數,用參數化查詢防止注入。

$filters = [

[“filter”=FILTER_SANITIZE_STRING],

[“filter”=FILTER_SANITIZE_STRING],

[“filter”=FILTER_VALIDATE_INT]

];

$b_result = filter_input_array($b,$filters);

ThinkPHP如何防止SQL注入?

(1)查詢條件盡量使用數組方式,這是更為安全的方式;

(2)如果不得已必須使用字元串查詢條件,使用預處理機制;

(3)使用綁定參數;

(4)強制進行欄位類型驗證,可以對數值數據類型做強制轉換;

(5)使用自動驗證和自動完成機制進行針對應用的自定義過濾;

(6)使用欄位類型檢查、自動驗證和自動完成機制等避免惡意數據的輸入;

(7)做一些過濾。

php防止sql注入以及xss跨站腳本攻擊

1.post數據

封裝轉義函數 防sql注入  eag:addslashes($username);addslashes($password); 

eag:防止sql注入函數封裝 

function deepslashes($data){

#判斷$data的表現形式 並且需要處理空的情況

if(empty($data)){

return($data);

}

#高級簡寫 return is_array($data) ? array_map(‘deepslashes’,$data) : addslashes($data);

#初級寫法

if(is_array($data)){

#遞歸循環遍歷處理多維數組

foreach ($data as $v) {

return deepslashes($v);

}

}else{

#單一變數

return addslashes($data);

}

#初級寫法

}

2.get數據

指url 傳參數導致sql發生改變

解決方案

①強制轉換,使用函數intval 或者 數據類型 的關鍵字int

②隱式轉換,通過運算,只需要+0即可

3.xss跨站腳本攻擊

指惡意攻擊向web頁面插入html、js標籤導致頁面出現錯誤

解決方案

轉義標籤” ”即可,有以下php函數可解決

htmlspecialchars 函數 和 htmlentites函數

eag:

function deepslashes($data){

#判斷$data的表現形式 並且需要處理空的情況

if(empty($data)){

return($data);

}

return is_array($data) ? array_map(‘deepslashes’,$data) : htmlspecialchars ($data);

}

php如何防止sql注入?

額,這是我老師給的答案\x0d\x0a \x0d\x0a答:過濾一些常見的資料庫操作關鍵字,\x0d\x0a select ,insert,update,delete,and,*等或通過系統函數addslashes對內容進行過濾\x0d\x0aphp配置文件中register_globals=off;設置為關閉狀態.(作用將註冊全局變數關閉);如接收POST表單的值使用$_POST[‘user’],假設設置為ON的話$user才接收值\x0d\x0asql語句書寫的時候盡量不要省略小引號(tab上面那個)和單引號\x0d\x0a提高資料庫命名技巧,對於一些重要的欄位根據程序的特點命名,使之不易被猜中\x0d\x0a對於常的方法加以封裝,避免直接暴漏SQL語句\x0d\x0a開啟PHP安全模式safe_mode=on\x0d\x0a打開magic_quotes_gpc來防止SQL注入,默認為關閉,開啟後自動把用戶提交sql查詢語句進行轉換把”‘”轉換成”\'”\x0d\x0a控制錯誤信息輸出,關閉錯誤信息提示,將錯誤信息寫到系統日誌\x0d\x0a使用MYSQLI或PDO預處理

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/278894.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-20 15:02
下一篇 2024-12-20 15:02

相關推薦

  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python中capitalize函數的使用

    在Python的字元串操作中,capitalize函數常常被用到,這個函數可以使字元串中的第一個單詞首字母大寫,其餘字母小寫。在本文中,我們將從以下幾個方面對capitalize函…

    編程 2025-04-29
  • Python中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • 單片機列印函數

    單片機列印是指通過串口或並口將一些數據列印到終端設備上。在單片機應用中,列印非常重要。正確的列印數據可以讓我們知道單片機運行的狀態,方便我們進行調試;錯誤的列印數據可以幫助我們快速…

    編程 2025-04-29
  • 三星內存條參數用法介紹

    本文將詳細解釋三星內存條上面的各種參數,讓你更好地了解內存條並選擇適合自己的一款。 一、容量大小 容量大小是內存條最基本的參數,一般以GB為單位表示,常見的有2GB、4GB、8GB…

    編程 2025-04-29
  • 三角函數用英語怎麼說

    三角函數,即三角比函數,是指在一個銳角三角形中某一角的對邊、鄰邊之比。在數學中,三角函數包括正弦、餘弦、正切等,它們在數學、物理、工程和計算機等領域都得到了廣泛的應用。 一、正弦函…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變數時顯示的指定變數類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29
  • Python定義函數判斷奇偶數

    本文將從多個方面詳細闡述Python定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29

發表回復

登錄後才能評論