導航:首頁 > 凈水問答 > thinkphpxss過濾器

thinkphpxss過濾器

發布時間:2022-08-07 23:51:49

『壹』 thinkphp怎麼做才是安全的sql防注入

  1. 注入的產生一般都是對用戶輸入的參數未做任何處理直接對條件和語句進行拼裝.


    代碼舉例:

    //不安全的寫法舉例1

$_GET['id']=8;//希望得到的是正整數

$data=M('Member')->where('id='.$_GET['id'])->find();

$_GET['id']='8 or status=1';//隱患:構造畸形查詢條件進行注入;

//安全的替換寫法

$data=M('Member')->where(array('id'=>$_GET['id']))->find();//使用數組方式將自動使用框架自帶的欄位類型檢測防止注入

$data=M('Member')->where(array('id'=>(int)$_GET['id']))->find();//類型約束

$data=M('Member')->where('id='.intval($_GET['id']))->find();//類型轉換

$data=M('Member')->where(array('id'=>I('get.id','','intval')))->find();//本人習慣寫法

$data=M('Member')->where(array('id'=>':id'))->bind(':id',I('get.id'))->select();//PDO驅動可以使用參數綁定

$data=M('Member')->where("id=%d",array($_GET['id']))->find();//預處理機制

//不安全的寫法舉例2

$_GET['id']=8;//希望得到的是正整數

$data=M()->query('SELECT * FROM `member` WHERE id='.$_GET['id']);//執行的SQL語句

$_GET['id']='8 UNION SELECT * FROM `member`';;//隱患:構造畸形語句進行注入;

2.防止注入的總的原則是<<根據具體業務邏輯,對來源於用戶的值的范圍,類型和正負等進行限制和判斷>>,同時<<盡量使用THINKPHP自帶的SQL函數和寫法>>.

3.在THINKPHP3.2版本中的操作步驟是:
一:在項目配置文件中添加配置: 'DEFAULT_FILTER' => 'htmlspecialchars', //默認過濾函數
二: 使用框架帶的I方法獲取來自用戶提交的數據;
例子:M('Member')->save(array('content'=>I('post.content')));這樣添加的content內容是經過htmlspecialchars處理過的.

4.為COOKIE添加httponly配置


5.最新版本的thinkphp已經支持此參數。

9.富文本過濾

富文本過濾是,XSS攻擊最令人頭疼的話題,不僅是小網站,就連BAT這樣的巨頭也是三天兩頭的被其困擾.

『貳』 這個xss有過濾方案么

方案一:
避免XSS的方法之一主要是將用戶所提供的內容輸入輸出進行過濾,回許多語言答都有提供對HTML的過濾:
可以利用下面這些函數對出現xss漏洞的參數進行過濾:
PHP的htmlentities()或是htmlspecialchars()。
Python 的 cgi.escape()。
ASP 的 ServerEncode()。
ASP.NET 的 ServerEncode() 或功能更強的 Microsoft Anti-Cross Site Scripting Library
Java 的 xssprotect(Open Source Library)。
Node.js 的 node-validator。
方案二:使用開源的漏洞修復插件。( 需要站長懂得編程並且能夠修改伺服器代碼 )

『叄』 糾結,原生PHP很熟練,還有沒有必要去學ThinkPHP

熟練也不行,原生的是基礎,有便於理解。如果用原生的做項目會出現很多問題,比如擴展性低,比如某一個函數出現不兼容,處理起來很麻煩,比如一些漏洞 sql注入、xss、csrf都要自己寫,框架中好多都是自帶的,最少要用熟練一到兩種框架,還要會最少一種開源框架的二次開發,這樣一個陌生的項目才能快速理清邏輯。

『肆』 在xss中各種過濾的情況,在什麼地方可能存在注入點

XSS注入的本質就是:某網頁中根據用戶的輸入,不期待地生成了可執行的js代碼,並且js得到了瀏覽器的執行.意思是說,發給瀏覽器的字元串中,包含了一段非法的js代碼,而這段代碼跟用戶的輸入有關.常見的XSS注入防護,可以通過簡單的htmlspecialchars(轉義HTML特殊字元),strip_tags(清除HTML標簽)來解決,但是,還有一些隱蔽的XSS注入不能通過這兩個方法來解決,而且,有時業務需要不允許清除HTML標簽和特殊字元.下面列舉幾種隱蔽的XSS注入方法:IE6/7UTF7XSS漏洞攻擊隱蔽指數:5傷害指數:5這個漏洞非常隱蔽,因為它讓出現漏洞的網頁看起來只有英文字母(ASCII字元),並沒有非法字元,htmlspecialchars和strip_tags函數對這種攻擊沒有作用.不過,這個攻擊只對IE6/IE7起作用,從IE8起微軟已經修復了.你可以把下面這段代碼保存到一個文本文件中(前面不要有空格和換行),然後用IE6打開試試(沒有惡意代碼,只是一個演示):+/v8+ADw-script+AD4-alert(document.location)+ADw-/script+AD4-最容易中招的就是JSONP的應用了,解決方法是把非字母和數字下劃線的字元全部過濾掉.還有一種方法是在網頁開始輸出空格或者換行,這樣,UTF7-XSS就不能起作用了.因為只對非常老版本的IE6/IE7造成傷害,對Firefox/Chrome沒有傷害,所以傷害指數只能給4顆星.參考資料:UTF7-XSS不正確地拼接JavaScript/JSON代碼段隱蔽指數:5傷害指數:5Web前端程序員經常在PHP代碼或者某些模板語言中,動態地生成一些JavaScript代碼片段,例如最常見的:vara='<!--?phpechohtmlspecialchars($name);?';不想,$name是通過用戶輸入的,當用戶輸入a』;alert(1);時,就形成了非法的JavaScript代碼,也就是XSS注入了.只需要把上面的代碼改成:vara=

『伍』 thinkphp 的上傳代碼中。如何讓上傳的文件的保存名為它自己的名字,而不是時間戳生成的名字

可以設置啊,saveRule 上傳文件命名規則 留空則使用原來文件名保存;
http://xss23.iteye.com/blog/398584網上隨便一搜索,都是這個,

『陸』 thinkphp怎麼做才是安全的sql防注入

1.盡量少使用數組查詢條件而應該使用查詢表達式替代;
2.盡量少使用字元串查詢條件,如果不得已的情況下 使用手動參數綁定功能;
3.不要讓用戶輸入決定要查詢或者寫入的欄位;
對於敏感數據在輸出的時候使用hidden方法進行隱藏;
對於數據的寫入操作應當做好許可權檢查工作;
寫入數據嚴格使用field方法限制寫入欄位;
對於需要輸出到頁面的數據做好必要的XSS過濾;

『柒』 thinkphp怎麼做才是安全的sql防注入

1:抵禦99%的攻擊方式,適用於90%的場景.

當網站不涉及復雜的用戶交互時,可以對用戶所有提交的文本進行htmlspecialchars函數處理。

在THINKPHP3.2版本中的操作步驟是:
一:在項目配置文件中添加配置: 'DEFAULT_FILTER' => 'htmlspecialchars', //默認過濾函數
二: 使用框架帶的I方法獲取來自用戶提交的數據;
例子:M('Member')->save(array('content'=>I('post.content')));這樣添加的content內容是經過htmlspecialchars處理過的.

提問:為什麼經過htmlspecialchars處理過的文本可以保證是安全的?
回答:縱觀XSS各種攻擊方式絕大多數依賴<>'"& 這幾個字元中的一個或幾個對內容進行注入攻擊。而htmlspecialchars函數的作用就是將這些字元轉換成無害的HTML 實體;
提問:為什麼有這么好的方法,而還有好多網站還是被攻擊.
回答:因為好多程序員總會粗心忘記使用這個方法,而遺漏某條數據的過濾。

2:對COOKIE進行IP綁定
cookie裡面一般有自動登錄信息和session_id,就算對cookie裡面的內容全部加了密,cookie的信息一但被別人通過XSS攻擊獲取後也一樣等同於把自己的帳號密碼給了別人。
對cookie進行IP綁定,(當然也可以獲取用戶客戶端更多的其它信息進行同時綁定)可以根據用戶的IP來判斷這個cookie是不是來原始授權用戶。

典型的應用示例:
用戶設置了自動登錄時保存自動登錄信息:
$auto=I('post.auto');//用戶設置了自動登錄
if(!empty($auto)){
cookie('auto',encrypt(serialize($data)));//將登錄信息保存到cookie,其中$data里含有加密後的帳號,密碼,和用戶的IP,這里的cookie已在全局中設置過期日期為一周
}
用戶關閉瀏覽器再次訪問網站時,進行自動登錄
if (!is_login()) {//是否未登錄狀態?
$auth=cookie('auto');
if(!empty($auth)){//是否未有自動登錄cookie?
$data=unserialize(decrypt($auth));
if(!empty($data) && !empty($data['username']) && !empty($data['password']) && !empty($data['last_login_ip'])){
$user=M('Member')->where(array('username'=>$data['username'],'password'=>$data['password']))->find();
if(!empty($user['id'])&&($user['last_login_ip']==get_client_ip())){//cookie帳號密碼是否有效?//IP來源是否相同?
login_session($user['id'], $user['username'], $data['last_login_ip']);//用戶自動登錄成功
}
}
}
}
復制代碼
優點:大多數場景下可使被XSS攻擊盜取的cookie失效。缺點:由於IP存在多台電腦共用的可能,對綁定做不到十分精細。

3:為COOKIE添加httponly配置
最新版本的thinkphp已經支持此參數。
此參數可以保證cookie只在http請求中被傳輸,而不被頁面中的腳本獲取,現市面上絕大多數瀏覽器已經支持。
復制代碼
4:HTML5值得觀注的新特性:
<iframe src="http://alibaba.com" sandbox>
為iframe的增加的sandbox屬性,可以防止不信任的Web頁面執行某些操作.相信這個方法以後會被廣泛使用。
復制代碼
5:富文本過濾
富文本過濾是,XSS攻擊最令人頭疼的話題,不僅是小網站,就連BAT這樣的巨頭也是三天兩頭的被其困擾.

閱讀全文

與thinkphpxss過濾器相關的資料

熱點內容
游擊森林的寶藏 電影 瀏覽:625
寧波鍋爐除垢劑怎麼樣 瀏覽:891
鎮海煉化污水排放標准 瀏覽:129
免貴網址 瀏覽:790
凈水機水管怎麼拔下來 瀏覽:700
木板樹脂製作過程 瀏覽:238
400g凈水器跟600g有什麼區別 瀏覽:872
農村題材喜劇電影大全 瀏覽:982
愛愛電影 日本 瀏覽:891
含醇量蒸餾裝置 瀏覽:368
污水用的超濾膜 瀏覽:727
情人 法國電影類似電影 瀏覽:484
洛陽一體化污水泵 瀏覽:667
油煙凈化器購買合同怎麼寫 瀏覽:334
香港老電影,女的變成蛇 瀏覽:434
香港電影尺度 瀏覽:932
關於日本少女胸電影 瀏覽:85
45t超濾設備pid圖 瀏覽:527
植物凈化污水是什麼價值 瀏覽:273
污水管線wz5是什麼意思 瀏覽:36