php sql注入防止フィルタページングパラメータの例

1791 ワード

本明細書の例では、phpがsql注入中にページングパラメータをフィルタリングすることを防止する方法について説明する.皆さんの参考にしてください.具体的な分析は以下の通りである.
ネットワークセキュリティでは、ネットワーク上で入力情報を信じないでください.入力情報に対してパラメータフィルタリングを行う必要があります.まず、次の例を見てみましょう.

   $this->load->library ( 'pagination' ); 
  
$config ['base_url'] = site_url () . '/guest/show';
$config ['total_rows'] = $c;
$config ['per_page'] = $pernum = 15;
$config ['uri_segment'] = 3;
$config ['use_page_numbers'] = TRUE;
$config ['first_link'] = ' ';
$config ['last_link'] = ' ';
$config ['num_links'] = 5;
$this->pagination->initialize ( $config );
if (! $this->uri->segment ( 3 )) {
    $currentnum = 0;
} else {
    $currentnum = is_numeric($this->uri->segment ( 3 ))?(intval($this->uri->segment ( 3 ) - 1)) * $pernum:0;
}
 
$current_page=is_numeric($this->uri->segment ( 3 ))?intval($this->uri->segment ( 3 )):1;
if($current_page){
    $data ['title'] = ' '.$current_page.' - - SQL ';
}
else{
    $data ['title'] = ' - SQL ';
}
 
$data ['liuyan'] = $this->ly->getLy ( $pernum, $currentnum );

次のようになります.

   $current_page=is_numeric($this->uri->segment ( 3 ))?intval($this->uri->segment ( 3 )):1; 
  
$currentnum = is_numeric($this->uri->segment ( 3 ))?(intval($this->uri->segment ( 3 ) - 1)) * $pernum;

この2つの文はパラメータが数値であるかどうかを判断した.不正な文字入力を防止します.
ここで述べたことが皆さんのPHPプログラム設計に役立つことを願っています.