PHP如何防止注入及開發安全

2021-05-23 05:20:03 字數 2013 閱讀 6631

幻燈片 2

1

php

注入的基本原理

幻燈片 2

程式設計師的水平及經驗也參差不齊,相當大一部分程式設計師在編寫**的時候,沒有對

使用者輸入資料的合法性進行判斷,使應用程式存在安全隱患。使用者可以提交一段資料

幻燈片 2

sql

注入過程

庫查詢**,根據程式返回的結果,獲得某些他想得知的資料,這就是所謂的

sql injection

,即

sql

注入。

受影響的系統:對輸入的引數不進行檢查和過濾的系統

幻燈片 2

正常來講,我們通過位址接收一些必要的引數如:

php100.php?id=

2

頁面中我們會使用

2

寫入到

sql

語句中

正常情況:

select * from table where id=2

如果我們對

sql

語句熟悉,就知道

2

我們可以替換成我們需要的

sql

語句

如:

and exists (select id from admin)

2、防止注入的幾種辦法

其實原來就是我們需要過濾一些我們常見的關鍵字和符合如:

select,insert,update,delete,and,*,等等

function inject_check($sql_str)

或者是通過系統函式間的過濾特殊符號

addslashes(需要被過濾的內容)

3、php其他地方安全設定

1、register_globals = off   設定為關閉狀態

2、sql語句書寫時盡量不要省略小引號和單引號

select * from table where id=2       (不規範)

select * from ·table· where ·id·=』2』       (規範)

3、正確的使用 $_post $_get $_session 等接受引數,並加以過濾

4、提高資料庫命名技巧,對於一些重要的字段可根據程式特點命名

5、對於常用方法加以封裝,避免直接暴露sql語句

php如何防止SQL注入

說明 判斷傳遞的變數中是否含有非法字元 如 post get 功能 防注入 要過濾的非法字元 arrfiltrate array union add 出錯後要跳轉的url,不填則預設前一頁 是否存在陣列中的值 function funstringexist strfiltrate,arrfiltra...

PHP如何防止SQL注入

一 引言 php是一種力量強大但相當容易學習的伺服器端指令碼語言,即使是經驗不多的程式設計師也能夠使用它來建立複雜的動態的web站點。然而,它在實現網際網路服務的秘密和安全方面卻常常存在許多困難。在本系列文章中,我們將向讀者介紹進行web開發所必需的安全背景以及php特定的知識和 你可以藉以保護你自...

php如何防止SQL注入

通過把sql命令插入到web表單提交或輸入網域名稱或頁面請求的查詢字串,最終達到欺騙伺服器執行惡意的sql命令。在使用者名稱輸入框中輸入 or 1 1 密碼隨便輸入,這時候的合成後的sql查詢語句為 在mysql中是注釋符,這樣井號後面的內容將被mysql視為注釋內容,這樣就不會去執行了,等價於 s...