上文說到數(shù)據(jù)庫自帶的不安全輸入過濾功能,但這樣的功能不是所有數(shù)據(jù)庫都有的。目前大概只有MySQL,SQLite,PostgreSQL,Sybase帶有這樣的功能,而包括Oracle和SQL Server在內(nèi)的 " /> 超碰国产亚洲人人,野花日本大全免费观看3中文版,边做边爱免费视频

天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

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語句之前,就把危險的字符過濾掉。預(yù)定義查詢(Prepared queries/prepared statements)是一個非常好的方法。什么是預(yù)定義查詢呢? 它就相當于一個查詢語句的模板,定義了查詢語句的結(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技術(shù)PHP與SQL注入攻擊[三],轉(zhuǎn)載需保留來源!

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

主站蜘蛛池模板: 国产一区2区 | 亚洲AV色香蕉一区二区三区 | 伊人亚洲综合网色 | 久久精品亚洲热综合一本奇米 | 精品无码国产污污污免费网站2 | 中文字幕精品视频在线 | 亚洲国产区中文在线观看 | 亚洲AV精品无码喷水直播间 | 打卡中国各地奋斗第一线 | 国产精品视频在线自在线 | 国产高清视频免费在线观看 | 国产噜噜噜精品免费 | 免费女人光着全身网站 | 国产激情视频在线播放 | 精品久久久亚洲精品中文字幕 | 玩两个少妇女邻居 | 国产日韩在线欧美视频 | 日本免费一区二区三区最新vr | 成人精品视频在线 | 乱叫抽搐流白浆免费视频 | 国产AV亚洲精品久久久久软件 | 中文字幕在线视频免费观看 | 欧美九十老太另类 | 亚洲熟妇AV乱码在线观看 | 被窝国产理论一二三影院 | 在线观看亚洲AV无码每日更新 | 国产 亚洲 中文字幕 在线 | 东莞桑拿美女 | 秋霞伦理高清视频在线 | 51久久夜色精品国产 | 红豆视频免费资源观看 | a国产成人免费视频 | 久久久久综合网久久 | 黑丝女仆恋上我 | 99九九精品视频 | 亚洲欧美一区二区三区导航 | 总裁呻吟双腿大开男男H | 小776论坛 | 福利视频久久 | 亚洲 欧美 日韩 卡通 另类 | 国产女合集第六部 |