⑴ 高分求php表單過濾代碼。
要防止注入,過濾表單輸入固然重要,但還需要從其他方面一起入手
屏蔽用戶輸入特殊字元的實質是,禁止用戶利用程序漏洞拼裝出一些我們不想讓用戶執行的SQL
例如:
$sql="SELECT*FROMtableWHEREuser='$_POST['user']'ANDpassword='$_POST['pwd']'";
用戶輸入
$_POST['user']='john';
$_POST['pwd']="'OR''='";
要麼實際執行的sql就是
SELECT*FROMtableWHEREuser='john'ANDpassword=''OR''=''
所以我們要對用戶的輸入做出處理,避免這種情況的發生
對於表單輸入,必要的過濾是需要的,對於每一個輸入可以寫一個function來篩一下
例如:
$user_name=clean($_POST['user']);
functionclean($v){
if(get_magic_quotes_gpc()){
$v=stripslashes($v);
}
//轉義字元串中的特殊字元
$v=mysql_real_escape_string($v);
return$v;
}
至於內容中包含一些sql的關鍵字,其實不用太過緊張,但是在sql語句中必須處理
例如:
INSERTINTOtableVALUES('xxx','xxx','xxx')
要保證每個值都被單引號包起來
SELECT,UPDATE,DELETE中的WHERE條件也是如此,但凡以用戶輸入的部分作為參數的,都得用單引號括起來,這樣就能有效防止sql注入
⑵ php表單安全過濾究竟要怎麼做
首先在客戶端通過JS進行初步數據過來是有效的手段,但是請注意,一切在客戶內端進行的驗容證都是非安全的,都是可以繞過的
然後是在代碼層進行數據過濾,例如php有些函數可以用來進行一些簡單的過濾操作:
strip_tags 可以去掉文本內容中的所有html標簽
htmlspecialchars 可以對文本內容中的html標簽進行轉義
addslashes 可以對內容中的特殊符號進行轉義
這些函數可以進行初步過濾,然後具體的內容就需要自己編寫相應的規則了,例如清除js代碼或者其他的敏感詞彙,需要自己編寫對應的正則進行替換
最後則是在執行sql時進行一些安全操作,如pdo的預處理等
⑶ php自定義一個函數用來過濾表單的。。比如說filter($_POST);調用filter函數的時
|function filter($array){
foreach($array as $k=>$v){
$array[$k]=htmlspecialchars(strip_tags($v));
$array[$k]=eregi('select|容insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile',$array[$k];
}
}
⑷ 用php處理表單數據
你是直接把name定義成了數組 你可以先列印出來你的hobby[]這個數組 看看就明白了
你的hobby本身就是一個函數
你可以在php開始的時候用extract($_POST);一下 然後用print_r($hobby);你看看你的數組就知道了
⑸ Php表單處理中可以使用〈form〉標簽的什麼特性來指定處理表單數據的文檔
你好.這個和PHP是沒有關系的,這個是html標簽的問題
在html標簽的form標簽中,可以使用action='你指定的PHP文件'來指定處理表單數據的文檔.
⑹ ThinkPHP獲取表單提交過來的賬戶輸入的數據,我是不是要做一些過濾
表單提交過來的數據要進行資料庫操作的話是必須要盡心字元過濾的,防止SQL注入,保證數據安全
⑺ php表單獲取用戶輸入數據後過濾的流程
addslashes
htmlspecialchars
mysql_real_escape_string
數字的可以用intval(),最好在之前就循環$_POST,挨個的addslashes或者其他函數。
上面都可以,根據需要來。
⑻ 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 如何過濾用戶提交的javascript代碼
進行html標簽轉義,例如傳入內容是$content=「<script>alert('sd');</script>」,運行
$content=htmlspecialchars($content);就會將你的內容轉換成
(這回個是轉換後插進資料庫里的答數據)
這個東西放在瀏覽器顯示就是
<script>alert('sd');</script>,但是不會運行裡面的函數。
⑽ php寫的一個申請鏈接功能,就是獲取表單過來的數據,然後過濾 檢查 發送一份郵件. 求告手幫我檢查下
代碼不全啊,dns_get_mx這個函數都沒有。
其實很簡單的事情,表單提交,發郵件推薦你用phpmailer
幾分鍾寫完代碼
望採納