上文說到數據庫自帶的不安全輸入過濾功能,但這樣的功能不是所有數據庫都有的。目前大概只有MySQL,SQLite,PostgreSQL,Sybase帶有這樣的功能,而包括Oracle和SQL Server在內的 " /> 在线成人小视频,成人羞羞免费视频,日韩1页

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

PHP與SQL注入攻擊[三]

這幾天太忙,繼續連載哈哈,爭取半個月結束。

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

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

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

例如:

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之外的所有字符都是占位符,不允許更改。呵呵,我覺得這種方法實在是個好方法。不過可惜不是所有數據庫都支持。。

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

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

主站蜘蛛池模板: 一区二区三区高清在线 | 久久综合九色综合97伊人麻豆 | 免费看黄网站在线看 | 伊人免费在线观看 | 福利岛国深夜在线 | 狠狠伊人| 91网站在线播放 | 真人毛片 | 精品国产网红福利在线观看 | 国产精品嫩草影视在线观看 | 国产成人啪午夜精品网站 | aabb片免费看 | 国产极品白嫩美女在线观看看 | 你懂得2019在线观看网站 | 波多野结衣一区二区三区高清在线 | 亚洲欧美在线视频观看 | 久久夜色tv网站 | 91视频美女 | 国产精品一区二区在线观看 | 日本一区二区三区欧美在线观看 | 日本视频一区二区三区 | 久久伊人热精品老鸭窝 | 色综合合久久天天综合绕视看 | 真实国产乱子伦视频 | 亚洲欧洲国产经精品香蕉网 | 欧美日韩精品乱国产 | 日本一区二区三区精品国产 | 亚洲精品福利网站 | 欧美一级性视频 | 色婷婷精品 | 自愉自愉自产国产91 | 美女视频黄频大全免费 | 国产普通话一二三道 | 欧美激情视频在线观看免费 | 国产成人精品午夜视频' | 国产福利91精品一区二区 | 在线成人爽a毛片免费软件 在线成人小视频 | 国产精品伦理久久久久久 | 国产真实伦在线视频免费观看 | 伊人加勒比 | 狠狠入ady亚洲精品 狠狠色成人综合首页 |