国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

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

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

瀏覽:45日期: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 數據庫
相關文章:
主站蜘蛛池模板: 阳江市| 高安市| 河津市| 平阴县| 都兰县| 克什克腾旗| 惠来县| 宜都市| 竹山县| 祁连县| 泽州县| 泾阳县| 临沧市| 大关县| 凤庆县| 玉屏| 长阳| 温州市| 嘉禾县| 思南县| 东阿县| 南宁市| 衡水市| 黑龙江省| 白银市| 时尚| 敦煌市| 龙里县| 宁陕县| 江安县| 攀枝花市| 新源县| 邯郸市| 沙坪坝区| 阿巴嘎旗| 财经| 西充县| 盐亭县| 卢氏县| 峨眉山市| 平山县|