上文說到數(shù)據(jù)庫自帶的不安全輸入過濾功能,但這樣的功能不是所有數(shù)據(jù)庫都有的。目前大概只有MySQL,SQLite,PostgreSQL,Sybase帶有這樣的功能,而包括Oracle和SQL Server在內(nèi)的 " /> 中文字幕一区二区三区乱码aⅴ,欧美一区二区三区视频在线,亚洲一级影院

一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

PHP與SQL注入攻擊[三]

這幾天太忙,繼續(xù)連載哈哈,爭取半個月結(jié)束。

上文說到數(shù)據(jù)庫自帶的不安全輸入過濾功能,但這樣的功能不是所有數(shù)據(jù)庫都有的。目前大概只有MySQL,SQLite,PostgreSQL,Sybase帶有這樣的功能,而包括Oracle和SQL Server在內(nèi)的很多數(shù)據(jù)庫都沒有。

鑒于這樣的情況,一般開發(fā)者采用一種通用的方法來避免不安全的數(shù)據(jù)寫入數(shù)據(jù)庫--base64編碼。這樣可以避免所有可能引起問題的特殊字符造成的危險。但Base64編碼后的數(shù)據(jù)容量大概會增加33%,比較占用空間。在PostgreSQL中,使用Base64編碼數(shù)據(jù)還有個問題,就是無法使用'LIKE'查詢。

所以總結(jié)這么多,我們知道光靠數(shù)據(jù)庫自身的字符串屏蔽也是不行的。我們需要一種解決方案,在特殊字符影響到我們的Query語句之前,就把危險的字符過濾掉。預定義查詢(Prepared queries/prepared statements)是一個非常好的方法。什么是預定義查詢呢? 它就相當于一個查詢語句的模板,定義了查詢語句的結(jié)構(gòu)和某些部份的數(shù)據(jù)類型。如果我們提交的SQL語句符合這個模板的定義,就執(zhí)行,否則就不執(zhí)行,報出錯誤。

例如:

pg_query($conn, “PREPARE stmt_name (text) AS SELECT * FROM users WHERE name=$1”);
pg_query($conn, “EXECUTE stmt_name ({$name})”);
pg_query($conn, “DEALLOCATE stmt_name”);

PREPARE stmt_name (text) AS ..定義了一個查詢的格式,這里除了$1之外的所有字符都是占位符,不允許更改。呵呵,我覺得這種方法實在是個好方法。不過可惜不是所有數(shù)據(jù)庫都支持。。

php技術PHP與SQL注入攻擊[三],轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 亚洲第一视频网 | 中文字幕亚洲图片 | 久久国产精品麻豆映画 | 国产毛片在线看 | 男女一级做a爱过程免费视频 | 午夜免费观看_视频在线观看 | 午夜亚洲国产 | bt7086福利一区二区三区最新 | 久草新在线| youjizz国产| 午夜激情网站 | 一本久道热中字伊人 | 美女一级免费毛片 | 欧美成人免费一级人片 | 亚洲成年网 | 成人综合在线视频 | 91全国探花精品正在播放 | 国产在线视频www色 国产在线视频第一页 | 久久er精品热线免费 | 顶级欧美色妇xxxxx | 国产成人精品日本亚洲网站 | 亚洲欧美成人永久第一网站 | vr专区日韩精品中文字幕 | 激情综合网五月激情 | 欧美久草 | 亚洲综合成人网 | 在线视频综合网 | 中文字幕二区三区 | 美女一级ba大片免色野外 | 国产精品偷伦视频免费观看了 | 国产九色 | 色黄网址| 久久九九青青国产精品 | 国内精品一区二区三区最新 | 欧美精品亚洲精品日韩专区 | 国产成人乱码一区二区三区 | baoyu777.永久免费视频 | 国产精品一区二区三区高清在线 | 亚洲成人中文 | 91视频免费视频 | 国产91中文 |