首頁  >  文章  >  後端開發  >  使用codeigniter的輸入類

使用codeigniter的輸入類

WBOY
WBOY原創
2016-08-08 09:29:58944瀏覽

最近寫個系統,沒有安全過濾輸入的,想採用CI的輸入類,分析了下,有三個檔案是需要的system/core下的

utf8.php,security.php,input.php

可以整合成一個文件,但是比較麻煩,還是用三個文件吧,這樣省事點。

使用的時候就像這樣:

//實例化安全輸入類別
$UNI = new utf8();
$SEC = new security();
$input = new input(); 

username = $input->post('username')這樣的形式。

當然裡面要修改一些配置變量,像$cookiepath,$cookieprefix,$cookiedomain,$cookiesecure等;

但是還有個關鍵的配置,$this->_enable_csrf= FALSE; 這個對應變數

= FALSE;預設是false的,如果你設定成了TRUE,

這樣會在url後面加上_csrf_token_name的鍵值對,因為會在下面的程式碼中檢查這個


有_csrf_cookie_name的cookie值。

參考:


在CI 2.0中有一個csrf(Cross Site Request Forgery) protection的功能

如果打開這個功能的話
post給server 會吐error 500or 500 月requested is not allowed.
會無法執行
這個時候要在表單傳送的數值中加入一個token的值
才能正常使用表單功能

可以在application/config/config.php中找到下面這幾行

1

2

3

4

' $config['csrf_token_name '] =

'csrf_test_name';$config['csrf_cookie_name'] =

'csrf_cookie_name';'csrf_cookie_name';$config[

'csrf_expire'] = 72000; 原本$config['csrf_protection']預設是FALSE改成TRUE就可以打開了開啟之後會自動幫你在cookie中存一個值cookie的name在上面說的config.php中可以設定之後傳送表單就要連這個token一起傳才行以下用jquery的ajax功能示範

1


2

3

4

10

11

12
13

14

15

16

17

18

  

$(

'#btn'

). click(

function

(){

        

$.ajax({ 

'POST'

            

,url:'/ajax'與/ getCookie('csrf_test_name'

)

            unc             alert(data.msg);                   

,dataType:'json'

  });});

functiongetCookie(name){     

vararr = document.cookie.match(newRegExp("(newRegExp(); )"));

    

if(arr != null)

return

unescape(arr[2]); return

null

;

}

;}

;

getCookie()是用js取出cookie的值
這是在網路上找到的可以直接拿去用

而csrf_test_name就是在config.php中可以設定的參數
將這個cookie抓出來一起送出表單
就可以正常使用了

有任何指教歡迎留言~

referer : http://ericlbarnes.com/blog/post/codeigniter_csrf_protection_with_ajax


以上就介紹了使用codeigniter的輸入類別,包含了方面的內容,希望對PHP教學有興趣的朋友有幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn