php防止sql注入

2021-07-24 07:53:08 字數 1171 閱讀 1055

所謂sql注入,是由表單提交時,後台拼接

sql語句造成的。如此,會給系統帶來很大的破壞,甚至導致整個資料庫被清掉,或刪除。因此必須做好防注入操作。關於這個問題,成熟的方案有很多,現在總結如下:

一,從根源上解決問題,也就是在接受表單提交時,要特別注意sql拼接處理可能帶來的影響,避免給黑客留下突破口。

二,使用轉義,經常用到的函式有:mysql_real_escape_string(

php5

已經不用了)和

addslasher,轉義之後,會消除上傳引數中一些惡意的特殊符號,如單雙引號等等。

php中

,有乙個魔術引

號的概念,如何開啟?答

:在php.ini

中,magic_quotes_gpc=on;

重啟apache

即可,沒用過,有待驗證。關於

mysql_real_escape_string

有這樣的

warning:warning:

as of php 5.5.0 mysql_real_escape_string and the mysql extension are deprecated. please use mysqli extension and mysqli::escape_string function instead 。

所以這裡說一下mysql,

mysqli

和pdo

的東西:

php-mysql 是

php操作

mysql

資料庫最原始的

extension

,php-mysqli

的 i

代表 improvement

,提更了相對高階的功能,就

extension

而言,本身也增加了安全性。而

pdo (php data object)

則是提供了乙個

abstraction layer

來操作資料庫。

使用mysqli或者使用

pdo。

三,限制引入的引數,就是把接收上來的資料和已知資料進行對比,看是否是合法的。

四,對引入引數進行編碼

五,使用mysql儲存過程

,沒怎麼用過,正在研究中.

php語句前加

@來抑制錯誤資訊。

php 防止sql注入

標題起的名字很大其實這裡只說乙個簡單的方法 防止sql注入的方法有很多,這裡要說的其實就是漏洞演練平台dvwa裡的一種方式 直接看high級別的就可以了 id get id id stripslashes id id mysql real escape string id if is numeric...

PHP防止sql注入

如果沒有防止sql注入,那麼你的 一些重要資訊就會被一些人輕易用特殊的字元登入而盜竊。比如 登入時的查詢語句為 select from 表名 where username 使用者名稱 and password 密碼 當使用者輸入使用者名為 or 1 or 密碼不輸入,此時的查詢語句為 select ...

php防止SQL注入

永遠不要相信使用者的輸入,為了防止黑客在我們的表單,get,header頭中輸入一些惡意的sql,為此,我們需要在後台進行執行sql 的時候進行對sql注入的預防 那麼首先來說一下什麼是sql注入 案例一 1 我們通過get來進行傳遞引數,查詢資料庫中goods表中id 1的資料,這樣的查詢是非常正...