欧美日韩精品在线,国内精品久久久久久久久,一级毛片恃级毛片直播,清纯唯美亚洲综合欧美色

PHP代碼安全和SQL Injection防范_PHP教程

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

推薦:php代碼防注入,保護(hù)代碼安全
今天寫代碼的時(shí)候猛然想到是不能能夠通過一個(gè)文件來處理整個(gè)網(wǎng)站中所有可能出現(xiàn)注入的地方進(jìn)行防范呢?這樣就能夠不用在每個(gè)程序里對(duì)每個(gè)變量進(jìn)行過濾,節(jié)省了時(shí)間和代碼。 我們主要是

在PHP編碼的時(shí)候,如果考慮到一些比較基本的安全問題,首先一點(diǎn):
1. 初始化你的變量

為什么這么說呢?我們看下面的代碼:

以下為引用的內(nèi)容:
if ($admin)
{
echo '登陸成功!';
include('admin.php');
}
else
{
echo '你不是管理員,無法進(jìn)行管理!';
}

好,我們看上面的代碼好像是能正常運(yùn)行,沒有問題,那么加入我提交一個(gè)非法的參數(shù)過去呢,那么效果會(huì)如何呢?比如我們的這個(gè)頁是 http://www.traget.com/login.php,那么我們提交:http://www.target.com/login.php?admin=1,呵呵,你想一些,我們是不是直接就是管理員了,直接進(jìn)行管理。
當(dāng)然,可能我們不會(huì)犯這么簡單錯(cuò)的錯(cuò)誤,那么一些很隱秘的錯(cuò)誤也可能導(dǎo)致這個(gè)問題,比如最近暴出來的phpwind 1.3.6論壇有個(gè)漏洞,導(dǎo)致能夠直接拿到管理員權(quán)限,就是因?yàn)橛袀(gè)$skin變量沒有初始化,導(dǎo)致了后面一系列問題。

那么我們?nèi)绾伪苊馍厦娴膯栴}呢?首先,從php.ini入手,把php.ini里面的register_global = off,就是不是所有的注冊(cè)變量為全局,那么就能避免了。但是,我們不是服務(wù)器管理員,只能從代碼上改進(jìn)了,那么我們?nèi)绾胃倪M(jìn)上面的代碼呢?我們改寫如下:

以下為引用的內(nèi)容:
$admin = 0; // 初始化變量
if ($_POST['admin_user'] && $_POST['admin_pass'])
{
// 判斷提交的管理員用戶名和密碼是不是對(duì)的相應(yīng)的處理代碼
// ...
$admin = 1;
}
else
{
$admin = 0;
}

 

if ($admin)
{
echo '登陸成功!';
include('admin.php');
}
else
{
echo '你不是管理員,無法進(jìn)行管理!';
}

那么這時(shí)候你再提交 http://www.target.com/login.php?admin=1 就不好使了,因?yàn)槲覀冊(cè)谝婚_始就把變量初始化為 $admin = 0 了,那么你就無法通過這個(gè)漏洞獲取管理員權(quán)限。


2. 防止SQL Injection (sql注射)

SQL 注射應(yīng)該是目前程序危害最大的了,包括最早從asp到php,基本上都是國內(nèi)這兩年流行的技術(shù),基本原理就是通過對(duì)提交變量的不過濾形成注入點(diǎn)然后使惡意用戶能夠提交一些sql查詢語句,導(dǎo)致重要數(shù)據(jù)被竊取、數(shù)據(jù)丟失或者損壞,或者被入侵到后臺(tái)管理。
基本原理我就不說了,我們看看下面兩篇文章就很明白了:
http://www.4ngel.net/article/36.htm
http://www.4ngel.net/article/30.htm

那么我們既然了解了基本的注射入侵的方式,那么我們?nèi)绾稳シ婪赌兀窟@個(gè)就應(yīng)該我們從代碼去入手了。

分享:用PHP生成中文拼音代碼
以下為引用的內(nèi)容: php代碼: ?php class ChineseSpell { /** * @var array $chines

共4頁上一頁1234下一頁
來源:模板無憂//所屬分類:PHP教程/更新時(shí)間:2008-12-02
相關(guān)PHP教程