国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php非法字符過濾

2024-05-04 21:58:55
字體:
來源:轉載
供稿:網友

1) 當需要把用戶輸入的內容,有可能包含單引號、雙引號 、反斜線、空字元 NUL,到mysql的語句中執行時,應該把APACHE中的magic_quotes_gpc項設成On.

如果APACHE中的此項設成Off時,也可用php的函數addslashes()達到相同的目的,但這兩種手段不能同時使用,否則會出現重復替換,出現錯誤.

樣例PHP代碼如下:

  1. <?php      
  2.     
  3. if (get_magic_quotes_gpc()) {      
  4.     
  5.     $content=$_POST["content"];      
  6.     
  7. else {      
  8.     
  9.     $content=addslashes($_POST["content"]);      
  10.     
  11. }      
  12.     
  13. ?> 

當然,如果APACHE中的magic_quotes_gpc項為On,但有時又不想轉義某項的特殊字符,可以使用stripslashes()去掉其中的 /.

2) 過濾影響MSSQL正常運行的字符。

當需要把用戶輸入的內容,有可能包含單引號,到mssql的語句中執行時,應該把APACHE中的magic_quotes_sybase項設成On,此時magic_quotes_gpc項不再生效.

如果APACHE中的此項設成Off時,php中并沒有合適的函數達到相同的目的,只能使用字符串替換函數來達到此目的.

樣例,PHP代碼:

  1. <?php 
  2. $content=str_replace("'","''"$_POST["content"]);      
  3. ?> 

現在10.218.17.53上的PHP既要訪問mysql又要訪問mssql,APACHE中的設置不能兼顧兩種數據庫,所以只對mysql做了相應設置.

2. 應對用戶輸入包含SQL語句的一個措施。

以下兩種SQL寫法都比較普遍,但安全程度是不同的,當用戶提交的$id='1 and 1=2 union select ...'時第一種就會顯示出不該顯示的數據,而第二種就相對安全些.

SQL代碼:

Select * FROM article Where articleid=$id     

Select * FROM article Where articleid='$id'

3. 防止用戶輸入的內容因包含html標簽或javascript而影響頁面的正常顯示,可以用htmlspecialchars()過濾其中的 & " < >,PHP代碼:

$content = htmlspecialchars($content);   

4. 當頁面要顯示的內容包含回車換行時,可以使用nl2br()來達到頁面上換行的效果.

方法一.

  1. <?php 
  2. function chkstr($paravalue,$paratype//過濾非法字符 
  3.  if($paratype==1) 
  4.  { 
  5.   $inputstr=str_replace("'","''",$paravalue); 
  6.   } 
  7.  elseif($paratype==2) 
  8.  { 
  9.   $inputstr=str_replace("'","",$paravalue); 
  10.   }//開源代碼Vevb.com 
  11.  return $inputstr
  12. $user1=chkstr($_GET["user"],1); 
  13. $user2=chkstr($_GET["user"],2); 
  14. //$user=$_GET["user"]; 
  15. print "方式1-----------------<br>"
  16. print "$user1 <br>"
  17. print "方式2-----------------<br>"
  18. print "$user2 <br>"
  19. ?> 

方法二.

  1. <?php 
  2. //用法:qstr($str, get_magic_quotes_gpc()) 
  3. function qstr($string$magic_quotes=false, $tag=false) 
  4.   $tag_str = ''
  5.   if ($tag$tag_str = "'"
  6.   if (!$magic_quotes) { 
  7.     if (strnatcmp(PHP_VERSION, '4.3.0') >= 0) { 
  8.       return $tag_str.mysql_real_escape_string($string).$tag_str
  9.     } 
  10.     $string = str_replace("'""[url=file:////]//'[/url]" , str_replace('//', '////', str_replace("/0""[url=]///0[/url]"$string))); 
  11.     return  $tag_str.$string.$tag_str
  12.   } 
  13.   return $tag_str.str_replace('//"''"'$string).$tag_str
  14. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玉溪市| 右玉县| 曲周县| 珠海市| 纳雍县| 临朐县| 绍兴县| 沙湾县| 德兴市| 淳化县| 岚皋县| 麻城市| 和林格尔县| 克拉玛依市| 高台县| 连江县| 都江堰市| 博野县| 顺昌县| 谷城县| 会理县| 垫江县| 板桥市| 将乐县| 芜湖市| 遂平县| 荣成市| 莱西市| 建宁县| 承德县| 施秉县| 潜山县| 东乌珠穆沁旗| 灌南县| 葵青区| 同江市| 阜康市| 简阳市| 阳泉市| 鹿邑县| 玉龙|