久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

mysql中 ${param}與#{param}使用區別

瀏覽:38日期:2023-10-13 15:47:16

${param}傳遞的參數會被當成sql語句中的一部分,比如傳遞表名,字段名

例子:(傳入值為id)

order by ${param}

則解析成的sql為:

order by id

#{parm}傳入的數據都當成一個字符串,會對自動傳入的數據加一個雙引號

例子:(傳入值為id)

select * from table where name = #{param}

則解析成的sql為:

select * from table where name = 'id'

為了安全,能用#的地方就用#方式傳參,這樣可以有效的防止sql注入攻擊

sql注入簡介

直接上了百度的例子,感覺一看就清晰明了

某個網站的登錄驗證的SQL查詢代碼為:

strSQL = 'SELECT * FROM users WHERE (name = ’' + userName + '’) and (pw = ’'+ passWord +'’);'

惡意填入userName = '1’ OR ’1’=’1';與passWord = '1’ OR ’1’=’1';時,將導致原本的SQL字符串被填為strSQL = 'SELECT * FROM users WHERE (name = ’1’ OR ’1’=’1’) and (pw = ’1’ OR ’1’=’1’); '也就是實際上運行的SQL命令會變成下面這樣的strSQL = 'SELECT * FROM users;'

這樣在后臺帳號驗證的時候巧妙地繞過了檢驗,達到無賬號密碼,亦可登錄網站。所以SQL注入攻擊被俗稱為黑客的填空游戲。

到此這篇關于mysql中 ${param}與#{param}使用區別的文章就介紹到這了,更多相關mysql中 ${param}與#{param}區別內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 太谷县| 珲春市| 沁源县| 万年县| 手游| 昆明市| 鄂伦春自治旗| 龙岩市| 睢宁县| 吴桥县| 阳西县| 哈尔滨市| 太康县| 乌鲁木齐市| 纳雍县| 伊川县| 衡东县| 乳源| 中山市| 滨海县| 青浦区| 柘荣县| 额尔古纳市| 南雄市| 海南省| 克什克腾旗| 自治县| 海宁市| 项城市| 武宁县| 晋中市| 忻城县| 辰溪县| 新泰市| 延庆县| 金塔县| 大英县| 河间市| 灵宝市| 玛纳斯县| 赤水市|