常見漏洞及處理方法

2021-07-03 10:38:53 字數 1578 閱讀 4451

1、sql注入

什麼是sql注入?就是使用者輸入特殊字元改變原有sql的語義,這就叫sql注入。

我們看一下例子:

首先建立乙個簡單的user表模擬一下sql注入,如圖所示

然後我們模擬一下使用者登入:  

$username = $_post['username'];

$passwd = $_post['passwd'];

$sql = "select * from user where username='$username' and passwd='$passwd'";

$result = mysql_query($sql);

if($result)else

如果使用者輸入的username=beggar和passwd=123456,此使用者是可以登入的。

思考一下,如果使用者輸入的資料為username=beggar和passwd=' or '1=1',此時的sql語句為select * from user where username='beggar' and passwd='' or '1=1';

這樣這個使用者就可以在不知道密碼的情況下登入成功。

如何防止呢?

在後台應當對使用者輸入的資料進行一定的過濾,我們也可以寫乙個方法進行處理接收到的資料,如:  

function add_slashes($name, $type)

}elseelseif(isset($_get[$name]))

}break;

case 'string' :

if(!get_magic_quotes_gpc())

}elseif(isset($_get[$name]))else}}

break;

}return strip_tags($name);

}

2、xss攻擊

後台接收到資料並顯示出來:

$username = $_post['username'];

$passwd = $_post['passwd'];

echo 'user info :

';echo 'username:' . $username . '

';echo 'passwd:' . $passwd . '

';

當使用者輸入的username為(開個玩笑)

在展示的頁面中則會彈出you are a *****! haha...

如何防止呢?

使用php自帶的strip_tags函式、htmlspecialchars、htmlentities這三個函式都可以對html進行過濾,第乙個函式會去除所有html標籤,第二個和三個函式則會html標籤進行轉義

3、csrf攻擊

常用方法是在隱藏表單中加入token法,token是個隨機數,在提交表單時候會把token傳過去,後台接收到token後則和後台session中的token值進行比較,如果兩值相等則進行下一步操作,否則程式則中止執行

常見前端安全漏洞及防範方法

參考文章 8大前端安全問題 上 8大前端安全問題 下 前端安全系列 一 如何防止xss攻擊?前端安全系列之二 如何防止csrf攻擊?前端安全知多少 跨站指令碼大全 核心 惡意指令碼注入 核心 利用使用者身份偽造請求 核心 廣告 彈框html注入 描述 當我們訪問頁面的時候,運營商在頁面的html 中...

nginx 上傳漏洞及 discuz 漏洞處理

由於nginx早期的版本,至少我在用 0.9.x 的版本依舊存在漏洞,導致處理過的可以執行php 簡單的說就是寫好的php 將副檔名改為,如 xx.jpg 檔案後通過 discuz 等開源論壇的上傳功能上傳後可以通過 方式執行 xx.php裡面的 對於discuz 論壇使用nginx的伺服器可以使用...

oralce常見報錯及處理方法

oracle資料庫無法登陸報錯 error ora 00257 archiver error.connect internal only,until freed.原因是歸檔日誌存放到了資料閃回區,導致資料閃回區滿了 使用sqlplus登陸資料庫,執行select from v flash recov...