TP5框架安全機制實例分析
本文實例講述了TP5框架安全機制。分享給大家供大家參考,具體如下:
防止sql注入
1、查詢條件盡量使用數(shù)組方式,具體如下:
$wheres = array(); $wheres['account'] = $account; $wheres['password'] = $password; $User->where($wheres)->find();
2、如果必須使用字符串,建議使用預(yù)處理機制,具體如下:
$User = D('UserInfo');
$User->where('account="%s" andpassword="%s"',array($account,$password))->find();
3、可以使用PDO方式(綁定參數(shù)),因為這里未使用PDO,所以不羅列,感興趣的可自行查找相關(guān)資料。
表單合法性檢測
1、配置insertFields和updateFields屬性
class UserInfoModelextends Model {
// 數(shù)據(jù)表名字
protected $tureTableName ='user';
// 配置插入和修改的字段匹配設(shè)置(針對表單)
protected $insertFields =array('name','sex','age');
protected $updateFields =array('nickname','mobile');
}
上面的定義之后,當(dāng)我們使用了create方法創(chuàng)建數(shù)據(jù)對象后,再使用add方法插入數(shù)據(jù)時,只會插入上面配置的幾個字段的值(更新類同),具體如下:
// 用戶注冊(示意性接口:插入)
public function register() {
// ...
// 使用Model的create函數(shù)更安全
$User= D('UserInfo');
$User->create();
$ID= $User->add();
if($ID) {
$result= $User->where('id=%d',array($ID))->find();
echo json_encode($result);
}
// ...
}
2、使用field方法直接處理
// 插入
M('User')->field('name,sex,age')->create();
// 更新
M('User')->field('nickname,mobile')->create();
更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。
希望本文所述對大家基于ThinkPHP框架的PHP程序設(shè)計有所幫助。
相關(guān)文章
Yii2實現(xiàn)增刪改查后留在當(dāng)前頁的方法詳解
yii2.0框架是PHP開發(fā)的一個比較高效率的框架,集合了作者的大量心血,下面這篇文章主要介紹了Yii2如何實現(xiàn)增刪改查后仍留在當(dāng)前頁的方法,需要的朋友可以參考借鑒,下面來一起看看吧。2017-01-01
Uchome1.2 1.5 代碼學(xué)習(xí) common.php
這是uchome 用到的php代碼,大家在學(xué)習(xí)編程的時候,可以看下當(dāng)時比較成熟的一些cms系統(tǒng),前提是你對程序比較熟悉啊,要不看了會打消學(xué)習(xí)積極性的。2009-04-04
ThinkPHP提示錯誤Fatal error: Allowed memory size的解決方法
這篇文章主要介紹了ThinkPHP提示錯誤Fatal error: Allowed memory size的解決方法,分析了該錯誤的原因與具體的解決方法,具有一定參考借鑒價值,需要的朋友可以參考下2015-02-02

