上文說到數據庫自帶的不安全輸入過濾功能,但這樣的功能不是所有數據庫都有的。目前大概只有MySQL,SQLite,PostgreSQL,Sybase帶有這樣的功能,而包括Oracle和SQL Server在內的 " /> 欧美片内射欧美美美妇,99亚洲精品色情无码久久,2021乱码精品公司

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

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注入攻擊[三],轉載需保留來源!

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

主站蜘蛛池模板: 66美女人体 | 免费看毛片网 | 亚洲精品成人 | 亚洲中文字幕在线精品 | 久久久大香菇 | 手机在线国产视频 | 国产精品女上位在线观看 | 欧美黑人巨大xxxxx | 高清欧美性猛交xxxx黑人猛交 | 免费无码一区二区三区蜜桃大 | 欧美成人中文字幕在线视频 | 亚洲精品久久久久久偷窥 | 国产www视频 | 亚洲国产区中文在线观看 | 成人人观看的免费毛片 | 波野结衣qvod| 国产在线观看网址你懂得 | 欧美白妞大战非洲大炮 | 国产人妻人伦精品无码.麻豆 | 999zyz色资源站在线观看 | 亚州AV中文无码乱人伦在线 | 九九热精品在线观看 | 在线观看永久免费网站 | 我与恶魔的h生活ova | 在线观看黄色小说 | 亚洲无AV在线中文字幕 | 亚洲 无码 制服 日韩 | 日本无码毛片久久久九色综合 | 女子叉开腿让男子桶免费软件 | 国产精品白浆精子流水合集 | 中国少妇内射XXXX狠干 | 伊人久久亚洲综合天堂 | 久久综合网久久综合 | 色多多涩涩屋下载软件 | 特级做A爰片毛片免费看108 | 色偷偷91综合久久噜噜 | 在线高清无码欧美久章草 | 亚洲 欧美 国产 视频二区 | www.99在线| 黑人寄宿羽月希产后奶水 | 伦理片2499电影伦理片 |