導航:首頁 > 凈水問答 > thinkphp5添加過濾

thinkphp5添加過濾

發布時間:2021-02-25 01:20:28

㈠ 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這樣的巨頭也是三天兩頭的被其困擾.

㈡ thinkphp里I方法過濾方法都有什麼有看到過intval和htmlspecialchars,手冊沒見過,想知道所有過濾方法

你好,我所知道的:
1 strip_tags:從字元串中去除 HTML 和 PHP 標記

2 mysql_escape_string:轉義一個字元串用於 mysql_query

這些函數在防注入方內面起到很大容的作用.

㈢ thinkphp如何過濾名字重復的記錄

example.對欄位進行去重回

$index = $select->distinct ( true )->where ( 'parent_id=0' )->field ( 'index' )->select ();

SELECT TOP 3
degree ,
COUNT(1) AS 人數答
FROM
Student
GROUP BY
degree
ORDER BY
degree DESC

㈣ tp5 怎麼過濾輸入的字元

可以直接定義一個字元類型,然後用gets(),從鍵盤得到這個字元串,再這個字元串進行內遍歷解析

下面提容供一個例子:從鍵盤輸出一串字元並且輸出其中的數字

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void) {
char string[100];
int i;//循環變數
gets(string);
for (i = 0; i <strlen(string); i++) {
if((string[i]>='0')&&(string[i]<='9')){//判斷每個字元是否是0~9直接的數
printf("%c",string[i]);//是數字的話直接列印
}
}
puts("");
puts("end");
return EXIT_SUCCESS;
}

㈤ thinkphp 視圖查詢問題。。。急、、、我需要在視圖中不用where過濾,直接在on後面添加過濾條件。求解

select a.* from 你的表 a with(nolock) left join 你的表 b with(nolock) on a.st_code=b.sst_code
這樣?

㈥ php 關於thinkphp的防sql注入跟過濾問題

防止注入
opensns
對於WEB應用來說,SQL注入攻擊無疑是首要防範的安全問題,系統底層對於數據安全方面本身進行了很多的處理和相應的防範機制,例如:
$User = M("User"); // 實例化User對象
$User->find($_GET["id"]);
即便用戶輸入了一些惡意的id參數,系統也會強制轉換成整型,避免惡意注入。這是因為,系統會對數據進行強制的數據類型檢測,並且對數據來源進行數據格式轉換。而且,對於字元串類型的數據,ThinkPHP都會進行escape_string處理(real_escape_string,mysql_escape_string)。
通常的安全隱患在於你的查詢條件使用了字元串參數,然後其中一些變數又依賴由客戶端的用戶輸入,要有效的防止SQL注入問題,我們建議:
查詢條件盡量使用數組方式,這是更為安全的方式;
如果不得已必須使用字元串查詢條件,使用預處理機制(3.1版本新增特性);
開啟數據欄位類型驗證,可以對數值數據類型做強制轉換;(3.1版本開始已經強制進行欄位類型驗證了)
使用自動驗證和自動完成機制進行針對應用的自定義過濾;
欄位類型檢查、自動驗證和自動完成機制我們在相關部分已經有詳細的描述。
查詢條件預處理
where方法使用字元串條件的時候,支持預處理(安全過濾),並支持兩種方式傳入預處理參數,例如:
$Model->where("id=%d and username='%s' and xx='%f'",array($id,$username,$xx))->select();
或者
$Model->where("id=%d and username='%s' and xx='%f'",$id,$username,$xx)->select();
模型的query和execute方法 同樣支持預處理機制,例如:
$model->query('select * from user where id=%d and status=%d',$id,$status);
或者
$model->query('select * from user where id=%d and status=%d',array($id,$status));
execute方法用法同query方法。

㈦ thinkphp5 i方法過濾沒找到在手冊哪裡,求助

thinkphp5已經取消了單字母函數,I函數在5.0中對應的是input函數,用法類似!

㈧ Thinkphp 過濾HTML標簽

經過截獲http的請求數據發現轉義是發生在thinkphp接收html文本之前由瀏覽器或在線編輯版器自動權轉義的。
對於使用create方法時可以在Model文件夾中定義模型類,在模型類中定義(content是你提交的欄位):
protected $_auto = array(
array('content', 'htmlspecialchars_decode', self::MODEL_BOTH, 'function'),
);
然後用D("模型名")->create();
如果是用I函數接收的可以改為$content = I('content', '', 'htmlspecialchars_decode');

㈨ thinkphp哪個方法對輸入的變數進行過濾

I方法可以對獲取的數據進行過濾
詳細的說明你可以去看下I方法的函數詳解

㈩ thinkphp在執行添加時怎樣防止SQL注入

使用tp自帶的方法添加,應該可以過濾大部分的sql注入。只要不直接專拼接sql執行。 一般屬是不需要你考慮這個問題的。對不對我不知道,因為我不用tp框架。 但是其他框架都是可以自己過濾的。 不需要你去處理什麼。

閱讀全文

與thinkphp5添加過濾相關的資料

熱點內容
皮革行業含鹼廢水 瀏覽:288
魚缸雙側過濾連接步驟 瀏覽:735
雨污水管線的材質 瀏覽:968
施特勞斯智飲機濾芯是什麼 瀏覽:631
污水處理產業扶持政策有哪些 瀏覽:811
錦鯉魚池過濾泵流量 瀏覽:711
超濾器是什麼意思 瀏覽:881
純水靜靜怎麼打 瀏覽:846
超濾截COD 瀏覽:914
電子超純水水罐用什麼材質 瀏覽:49
清除水垢硅磷晶 瀏覽:519
crv空氣凈化器怎麼打開 瀏覽:526
反滲透膜低溫清洗 瀏覽:785
鄭州過濾王管理中心地址 瀏覽:872
水水垢成分 瀏覽:866
陝西原裝外置污水提升泵要多少錢 瀏覽:419
聚聚乙烯樹脂粉袋 瀏覽:739
飲水機漏水屬於什麼原因 瀏覽:824
污水廠硝化脫模怎麼處理 瀏覽:924
vue2內置過濾器 瀏覽:386