香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > MYSQL >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

mysql中 ${param}与#{param}使用区别


时间:2020-11-03 13:47 作者:admin610456


${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*FROMusersWHERE(name='1'OR'1'='1')and(pw='1'OR'1'='1'); "
也就是实际上运行的SQL命令会变成下面这样的strSQL="SELECT*FROMusers;"

这样在后台帐号验证的时候巧妙地绕过了检验,达到无账号密码,亦可登录网站。所以SQL注入攻击被俗称为黑客的填空游戏。

到此这篇关于mysql/' target='_blank'>mysql中 ${param}与#{param}使用区别的文章就介绍到这了,更多相关MySQL中 ${param}与#{param}区别内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)