包含mysql防注入通用代碼的詞條

本文目錄一覽:

求一段php防mysql注入病毒代碼。

//POST過濾安全

$_POST=check_input($_POST);

function check_input($value)

{

if(get_magic_quotes_gpc()){

$value = htmlspecialchars(trim($value));

} else {

$value = addslashes(htmlspecialchars(trim($value)));

}

return $value;

}

另一種如下:PHP整站防注入程序,需要在公共文件中require_once本文件

?PHP

//判斷magic_quotes_gpc狀態

if (@get_magic_quotes_gpc ()) {

$_GET = sec ( $_GET );

$_POST = sec ( $_POST );

$_COOKIE = sec ( $_COOKIE );

$_FILES = sec ( $_FILES );

}

$_SERVER = sec ( $_SERVER );

function sec($array) {

//如果是數組,遍曆數組,遞歸調用

if (is_array ( $array )) {

foreach ( $array as $k = $v ) {

$array [$k] = sec ( $v );

}

} else if (is_string ( $array )) {

//使用addslashes函數來處理

$array = addslashes ( $array );

} else if (is_numeric ( $array )) {

$array = intval ( $array );

}

return $array;

}

//整型過濾函數

function num_check($id) {

if (! $id) {

die ( ‘參數不能為空!’ );

} //是否為空的判斷

else if (inject_check ( $id )) {

die ( ‘非法參數’ );

} //注入判斷

else if (! is_numetic ( $id )) {

die ( ‘非法參數’ );

}

//數字判斷

$id = intval ( $id );

//整型化

return $id;

}

//字符過濾函數

function str_check($str) {

if (inject_check ( $str )) {

die ( ‘非法參數’ );

}

//注入判斷

$str = htmlspecialchars ( $str );

//轉換html

return $str;

}

function search_check($str) {

$str = str_replace ( “_”, “\_”, $str );

//把”_”過濾掉

$str = str_replace ( “%”, “\%”, $str );

//把”%”過濾掉

$str = htmlspecialchars ( $str );

//轉換html

return $str;

}

//表單過濾函數

function post_check($str, $min, $max) {

if (isset ( $min ) strlen ( $str ) $min) {

die ( ‘最少$min字節’ );

} else if (isset ( $max ) strlen ( $str ) $max) {

die ( ‘最多$max字節’ );

}

return stripslashes_array ( $str );

}

//防注入函數

function inject_check($sql_str) {

return eregi ( ‘select|inert|update|delete|\’|\/\*|\*|\.\.\/|\.\/|UNION|into|load_file|outfile’, $sql_str );

}

function stripslashes_array($array) {

if (is_array ( $array )) {

foreach ( $array as $k = $v ) {

$array [$k] = stripslashes_array ( $v );

}

} else if (is_string ( $array )) {

$array = stripslashes ( $array );

}

return $array;

}

?

mysql怎麼防注入

mysql 可以使用更安全的pdo_mysql接口來處理

所有的查詢參數話綁定

$sql = ‘select * from table where id=:id’;

$pdo-prepare($sql)-bindValue(‘:id’, $id, PDO::PARAM_INT)-excute();

$pdo-fetch(); 來獲取數據 這樣可以很有效的避免被注入

PHP MySQL 防注入代碼

array_merge($HTTP_POST_VARS,$HTTP_GET_VARS);

這個方法裡面的第一個參數不是數組,這很明顯的說了啊。

$HTTP_POST_VARS是一個全局變量用於接受post過來的值

檢查一下這裡應該能找到問題所在

原創文章,作者:OWLB,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/133611.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
OWLB的頭像OWLB
上一篇 2024-10-04 00:00
下一篇 2024-10-04 00:00

相關推薦

  • 如何修改mysql的端口號

    本文將介紹如何修改mysql的端口號,方便開發者根據實際需求配置對應端口號。 一、為什麼需要修改mysql端口號 默認情況下,mysql使用的端口號是3306。在某些情況下,我們需…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python字符串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字符串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字符串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python基礎代碼用法介紹

    本文將從多個方面對Python基礎代碼進行解析和詳細闡述,力求讓讀者深刻理解Python基礎代碼。通過本文的學習,相信大家對Python的學習和應用會更加輕鬆和高效。 一、變量和數…

    編程 2025-04-29
  • Python滿天星代碼:讓編程變得更加簡單

    本文將從多個方面詳細闡述Python滿天星代碼,為大家介紹它的優點以及如何在編程中使用。無論是剛剛接觸編程還是資深程序員,都能從中獲得一定的收穫。 一、簡介 Python滿天星代碼…

    編程 2025-04-29
  • 倉庫管理系統代碼設計Python

    這篇文章將詳細探討如何設計一個基於Python的倉庫管理系統。 一、基本需求 在着手設計之前,我們首先需要確定倉庫管理系統的基本需求。 我們可以將需求分為以下幾個方面: 1、庫存管…

    編程 2025-04-29
  • 寫代碼新手教程

    本文將從語言選擇、學習方法、編碼規範以及常見問題解答等多個方面,為編程新手提供實用、簡明的教程。 一、語言選擇 作為編程新手,選擇一門編程語言是很關鍵的一步。以下是幾個有代表性的編…

    編程 2025-04-29
  • Python實現簡易心形代碼

    在這個文章中,我們將會介紹如何用Python語言編寫一個非常簡單的代碼來生成一個心形圖案。我們將會從安裝Python開始介紹,逐步深入了解如何實現這一任務。 一、安裝Python …

    編程 2025-04-29
  • 怎麼寫不影響Python運行的長段代碼

    在Python編程的過程中,我們不可避免地需要編寫一些長段代碼,包括函數、類、複雜的控制語句等等。在編寫這些代碼時,我們需要考慮代碼可讀性、易用性以及對Python運行性能的影響。…

    編程 2025-04-29
  • 北化教務管理系統介紹及開發代碼示例

    本文將從多個方面對北化教務管理系統進行介紹及開發代碼示例,幫助開發者更好地理解和應用該系統。 一、項目介紹 北化教務管理系統是一款針對高校學生和教職工的綜合信息管理系統。系統實現的…

    編程 2025-04-29

發表回復

登錄後才能評論