導航:首頁 > 凈水問答 > php過濾get

php過濾get

發布時間:2024-01-08 06:24:05

⑴ php 關於thinkphp的防sql注入跟過濾問題

防止注入
opensns
對於WEB應用來說,SQL注入攻擊無疑是首要防範的安全問題,系統底層對於數據安全方面本身進行了很多的處理和相應的防範機制,例如:
$User = M("User"); // 實例化User對象
$User->find($_GET["id"]);
即便用戶輸入了一些惡意的id參數,系統也會強制轉換成整型,避免惡意注入。這是因為,系統會對數據進行強制的數據類型檢測,並且對數據來源進行數據格式轉換。而且,對於字元串類型的數據,ThinkPHP都會進行escape_string處理(real_escape_string,mysql_escape_string)。
通常的安全隱患在於你的查詢條件使用了字元串參數,然後其中一些變數又依賴由客戶端的用戶輸入,要有效的防止SQL注入問題,我們建議:
查詢條件盡量使用數組方式,這是更為安全的方式;
如果不得已必須使用字元串查詢條件,使用預處理機制(3.1版本新增特性);
開啟數據欄位類型驗證,可以對數值數據類型做強制轉換;(3.1版本開始已經強制進行欄位類型驗證了)
使用自動驗證和自動完成機制進行針對應用的自定義過濾;
欄位類型檢查、自動驗證和自動完成機制我們在相關部分已經有詳細的描述。
查詢條件預處理
where方法使用字元串條件的時候,支持預處理(安全過濾),並支持兩種方式傳入預處理參數,例如:
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
或者
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
模型的query和execute方法 同樣支持預處理機制,例如:
$model->query('select * from user where id=%d and status=%d',$id,$status);
或者
$model->query('select * from user where id=%d and status=%d',array($id,$status));
execute方法用法同query方法。

⑵ php中,通過$_GET 和 $_POST 取得的數據 安不安全 需要什麼過濾函數處理嗎

引號過濾有magic_quotes_gpc(伺服器配置)

函數addslashes() htmlspecialchars(,ENT_QUOTE);

注意伺服器上是否已經開啟magic_quotes_gpc
(php>=5.3 已經廢棄了它) 如果已經開啟,再進行轉義會導致雙層轉義。 另外addslashes() addcslashes() 都不能對數組進行處理,需要寫一個遞歸實現。
你可以使用函數get_magic_quotes_gpc()來檢測它是否已經開啟

不建議使用addslashes使用addslashes可能會因為資料庫編碼的問題使得單引號未被轉義了解詳情可訪問: http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string

⑶ PHP怎麼過濾GET或者POST的參數怎麼樣才能保證代碼不被注入

//本人在抄 TP 框架中的過濾函數。// Input 類是 TP 供給的。function inputFilter($content){ if(is_string($content) ) { return Input::getVar($content); } elseif(is_array($content)){ foreach ( $content as $key => $val ) { $content[$key] = inputFilter($val); } return $content; } elseif(is_object($content)) { $vars = get_object_vars($content); foreach($vars as $key=>$val) { $content->$key = inputFilter($val); } return $content; } else{ return $content; }}

⑷ 請問PHP怎麼過濾GET或者POST的參數防止js注入,或者一些html注入請請提供代碼參考謝謝!

string mysql_real_escape_string ( string unescaped_string [, resource link_identifier])

本函數將來 unescaped_string 中的特殊字元自轉義,並計及連接的當前字元集,因此可以安全用於 mysql_query()。
注: mysql_real_escape_string() 並不轉義 % 和 _。
例子 1. mysql_real_escape_string() 例子
<?php
$item = "Zak's and Derick's Laptop";
$escaped_item = mysql_real_escape_string($item);
printf ("Escaped string: %s\n", $escaped_item);
?>
以上例子將產生如下輸出:
Escaped string: Zak\'s and Derick\'s Laptop

閱讀全文

與php過濾get相關的資料

熱點內容
北京水處理講師招聘 瀏覽:682
ro膜世韓和匯通的區別 瀏覽:242
反滲透設備為什麼要排放廢水 瀏覽:272
清洗劑污水處理設備 瀏覽:140
污水池鋼筋綁扎最底價位怎麼算的 瀏覽:32
污水出水口為什麼要設置 瀏覽:241
水處理銷售員工作總結 瀏覽:321
四輪拖拉機提升器維修 瀏覽:920
污水裡有顏色怎麼能去掉 瀏覽:371
純水機50克是什麼意思 瀏覽:512
管控純水電阻率是什麼意思 瀏覽:915
魔力寶貝的純水晶能幹什麼 瀏覽:418
丙烯酸樹脂論文 瀏覽:437
合肥空氣凈化器多少錢 瀏覽:962
農村污水建設投訴電話是多少 瀏覽:297
西安哪裡的純凈水好 瀏覽:933
凈水機塑料壓力桶怎麼用 瀏覽:707
舊的凈水過濾芯為什麼是黑水 瀏覽:450
水性環氧樹脂未來發展 瀏覽:626
1公斤純水是多少 瀏覽:466