成人精品一区二区三区中文字幕-成人精品一区二区三区-成人精品一级毛片-成人精品亚洲-日本在线视频一区二区-日本在线视频免费

導航首頁 ? 技術教程 ? PHP實現表單提交數據的驗證處理功能【防SQL注入和XSS攻擊等】
全站頭部文字 我要出現在這里
PHP實現表單提交數據的驗證處理功能【防SQL注入和XSS攻擊等】 748 2023-12-08   

本文實例講述了PHP實現表單提交數據的驗證處理功能。分享給大家供大家參考,具體如下:

防XSS攻擊代碼:

/**
 * 安全過濾函數
 *
 * @param $string
 * @return string
 */
function safe_replace($string) {
 $string = str_replace('%20','',$string);
 $string = str_replace('%27','',$string);
 $string = str_replace('%2527','',$string);
 $string = str_replace('*','',$string);
 $string = str_replace('"','"',$string);
 $string = str_replace("'",'',$string);
 $string = str_replace('"','',$string);
 $string = str_replace(';','',$string);
 $string = str_replace('<','<',$string);
 $string = str_replace('>','>',$string);
 $string = str_replace("{",'',$string);
 $string = str_replace('}','',$string);
 $string = str_replace('\','',$string);
 return $string;
}

代碼實例:

<?php
$user_name = strim($_REQUEST['user_name']);
function strim($str)
{
 //trim() 函數移除字符串兩側的空白字符或其他預定義字符。
 //htmlspecialchars() 函數把預定義的字符轉換為 HTML 實體(防xss攻擊)。
 //預定義的字符是:
 //& (和號)成為 &
 //" (雙引號)成為 "
 //' (單引號)成為 '
 //< (小于)成為 <
 //> (大于)成為 >
 return quotes(htmlspecialchars(trim($str)));
}
//防sql注入
function quotes($content)
{
 //if $content is an array
 if (is_array($content))
 {
  foreach ($content as $key=>$value)
  {
   //$content[$key] = mysql_real_escape_string($value);
   /*addslashes() 函數返回在預定義字符之前添加反斜杠的字符串。
   預定義字符是:
   單引號(')
   雙引號(")
   反斜杠()
   NULL */
   $content[$key] = addslashes($value);
  }
 } else
 {
  //if $content is not an array
  //$content=mysql_real_escape_string($content);
  $content=addslashes($content);
 }
 return $content;
}
?>

//過濾sql注入
function filter_injection(&$request)
{
 $pattern = "/(select[s])|(insert[s])|(update[s])|(delete[s])|(from[s])|(where[s])/i";
 foreach($request as $k=>$v)
 {
    if(preg_match($pattern,$k,$match))
    {
      die("SQL Injection denied!");
    }
    if(is_array($v))
    {
     filter_injection($request[$k]);
    }
    else
    {
     if(preg_match($pattern,$v,$match))
     {
      die("SQL Injection denied!");
     }
    }
 }
}

防sql注入:

mysql_real_escape_string() 函數轉義 SQL 語句中使用的字符串中的特殊字符。

下列字符受影響:

x00
n
r
'

x1a

如果成功,則該函數返回被轉義的字符串。如果失敗,則返回 false。

語法

mysql_real_escape_string(string,connection)

參數 描述 string 必需。 規定要轉義的字符串。 connection 可選。 規定 MySQL 連接。如果未規定,則使用上一個連接。

對于純數字或數字型字符串的校驗可以用

is_numeric()檢測變量是否為數字或數字字符串

實例:

<?php 
function get_numeric($val) { 
 if (is_numeric($val)) { 
 return $val + 0; 
 } 
 return 0; 
} 
?>

is_array — 檢測變量是否是數組
bool is_array ( mixed $var )
如果 var 是 array,則返回 TRUE,否則返回 FALSE。

is_dir 判斷給定文件名是否是一個目錄
bool is_dir ( string $filename )
判斷給定文件名是否是一個目錄。
如果文件名存在,并且是個目錄,返回 TRUE,否則返回FALSE。

is_file — 判斷給定文件名是否為一個正常的文件
bool is_file ( string $filename )
判斷給定文件名是否為一個正常的文件。
如果文件存在且為正常的文件則返回 TRUE,否則返回 FALSE。
Note:
因為 PHP 的整數類型是有符號整型而且很多平臺使用 32 位整型,對 2GB 以上的文件,一些文件系統函數可能返回無法預期的結果 。

is_bool — 檢測變量是否是布爾型
bool is_bool ( mixed $var )
如果 var 是 boolean 則返回 TRUE。

is_string — 檢測變量是否是字符串
bool is_string ( mixed $var )
如果 var 是 string 則返回 TRUE,否則返回 FALSE。

is_int — 檢測變量是否是整數
bool is_int ( mixed $var )
如果 var 是 integer 則返回 TRUE,否則返回 FALSE。
Note:
若想測試一個變量是否是數字或數字字符串(如表單輸入,它們通常為字符串),必須使用 is_numeric()。

is_float — 檢測變量是否是浮點型
bool is_float ( mixed $var )
如果 var 是 float 則返回 TRUE,否則返回 FALSE。
Note:
若想測試一個變量是否是數字或數字字符串(如表單輸入,它們通常為字符串),必須使用 is_numeric()。

is_null — 檢測變量是否為 NULL
bool is_null ( mixed $var )
如果 var 是 null 則返回 TRUE,否則返回 FALSE。

is_readable — 判斷給定文件名是否可讀
bool is_readable ( string $filename )
判斷給定文件名是否存在并且可讀。如果由 filename 指定的文件或目錄存在并且可讀則返回 TRUE,否則返回 FALSE。

is_writable — 判斷給定的文件名是否可寫
bool is_writable ( string $filename )
如果文件存在并且可寫則返回 TRUE。filename 參數可以是一個允許進行是否可寫檢查的目錄名。

file_exists — 檢查文件或目錄是否存在
bool file_exists ( string $filename )
檢查文件或目錄是否存在。
在 Windows 中要用 //computername/share/filename 或者 computernamesharefilename 來檢查網絡中的共享文件。
如果由 filename 指定的文件或目錄存在則返回 TRUE,否則返回 FALSE。

is_executable — 判斷給定文件名是否可執行
bool is_executable ( string $filename )
判斷給定文件名是否可執行。如果文件存在且可執行則返回 TRUE,錯誤時返回FALSE。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《php程序設計安全教程》、《php安全過濾技巧總結》、《PHP運算與運算符用法總結》、《PHP基本語法入門教程》、《php面向對象程序設計入門教程》、《php字符串(string)用法總結》、《php+mysql數據庫操作入門教程》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。


主站蜘蛛池模板: 玫瑰的故事图片| 午间剧场| 林连昆| 一级特黄新婚之夜| 徐情| 最新好看电影| 春心荡漾第二季无删减| 南来北往分集剧情| 新上海滩张国荣和宁静| 猎仇者电影| 江西省旅游地图| 日本xxx.| 大奉打更人电视剧免费在线观看 | 麻美由真电影| 戒色免费观看| 安姨电影| 《电业安全工作规程》电力线路| 燃冬海报| 52bb| 克拉之恋 电视剧| 七年级的英语翻译全书| 林丹出轨视频| | 最美表演| 涩涩免费网站| 宋小莹| 陈慕义| 王渝萱主演的电影大全| 头像女可爱卡通| 画江湖之不良人7季什么时候上映 画江湖之不良人第七季什么时候出 | 开国大典ppt课件| 林丹出轨视频| 小恩雅骑马舞蹈视频| 姐妹7完整版| 麻豆视频网站免费观看| 李顺载| 时尚购物| 美女自卫网站| 仲村美宇| 三人行菲律宾| 电影吻隐者在线观看免费完整版|

!!!站長長期在線接!!!

網站、小程序:定制開發/二次開發/仿制開發等

各種疑難雜癥解決/定制接口/定制采集等

站長微信:lxwl520520

站長QQ:1737366103