国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php防注入及開發安全詳細解析

2024-05-04 23:12:31
字體:
來源:轉載
供稿:網友

1、PHP注入的基本原理
程序員的水平及經驗也參差不齊,相當大一部分程序員在編寫代碼的時候,沒有對 用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據 庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據,這就是所謂的 SQL Injection,即SQL注入。 受影響的系統:對輸入的參數不進行檢查和過濾的系統.

SQL注入過程
正常來講,我們通過地址接收一些必要的參數如:
頁面中我們會使用 2 寫入到SQL語句中
正常情況:Select * From Table where id=2

PHP100.php?id=2
如果我們對SQL語句熟悉,就知道2 我們可以替換成我們需要的SQL語句
如:and exists (select id from admin)

2、防止注入的幾種辦法
其實原來就是我們需要過濾一些我們常見的關鍵字和符合如:
Select,insert,update,delete,and,*,等等
例子:

復制代碼 代碼如下:


function inject_check($sql_str) {
return preg_match('/select|insert|update|delete|/'|///*|/*|/././/|/.//|union|into|load_file|outfile/i', $sql_str);      // 進行過濾
}


或者是通過系統函數間的過濾特殊符號
Addslashes(需要被過濾的內容)

3、PHP其他地方安全設置
register_globals = Off 設置為關閉狀態
SQL語句書寫時盡量不要省略小引號和單引號

復制代碼 代碼如下:


Select * From Table Where id=2 (不規范)
Select * From ·Table· Where ·id·='2' (規范)


提高數據庫命名技巧,對于一些重要的字段可根據程序特點命名
對于常用方法加以封裝,避免直接暴露SQL語句

正確的使用 $_POST $_GET $_SESSION 等接受參數,并加以過濾

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 山东省| 饶平县| 左权县| 颍上县| 四子王旗| 班戈县| 永福县| 枣庄市| 海盐县| 玛曲县| 昭苏县| 红桥区| 宁蒗| 方山县| 安图县| 搜索| 淳化县| 渝中区| 寿阳县| 巩留县| 莱芜市| 长岭县| 宜君县| 利川市| 门头沟区| 铅山县| 乐都县| 宝清县| 明溪县| 通山县| 泗洪县| 中江县| 思茅市| 盐亭县| 星子县| 育儿| 保靖县| 阿瓦提县| 汝南县| 腾冲县| 米泉市|