[程序员]这是一张只有程序员才能看懂的图片( 二 )
①车牌号
也就是类似于用户名的存在 。
②DROP DATABASE TABLICE
这是在一件什么事情?在删除数据库 。
③也是用的sql中的“--” , 将后面的数据都注释掉了 。
也就是说 , 摄像头拍到了这辆车 , 会记下其车牌号登录 , 同时删除自己的数据库 。
这样的一种行为就是sql注入 。
简单地理解也就是:
用户在提交数据时人为地添加一些特殊字符 , 使得sql语句的结构发生了变化 。
最终可以在没有用户名或者密码的情况下进行登录 , 同时也可以完成恶意攻击 。
当然这张图片只是一个笑话啦 。
- 首先你并不知道交通部门的数据库名叫啥 。
- 其次交通部门也有程序员 , 肯定会想到防范措施 。
- 最后这样做一旦被发现 , 是要被直接吊销驾照的 。
三、预编译预编译、顾名思义也就是预先编译 , 代码如下:
①占位符
?是一个占位符 , 表示所在的位置是一个参数 。
它有一个非常强大的作用在于 , 占位符里的参数 , 必然会是普通字符串 。 什么意思呢?
我们以前学过转义字符 。
本来“--”在sql中是注释的意思 , 但是通过占位符将其转义成一个普通的字符了 , 不具有注释的作用了 。
②预编译
预编译等于是将sql语句提前了 , 先编译再设置参数 。
以前执行sql语句是在调用executeQuery()方法时 。
其中PreparedStatement是Statement的一个子接口 。
prepared , 也就是准备、预先的意思 。
③参数索引
setString()方法就是给占位符赋具体的值 。
参数表示的是sql语句中“?”占位符的索引:
- 1表示的第一个问号是name;
- 2表示的是第二个问号表示的是pwd 。
以上便是对sql注入以及其防范措施预编译的说明 。
预编译能防范sql注入 , 效率还高 , 很是实用 。
最后谢谢你的观看 。
如果可以的话 , 麻烦帮忙点个赞 , 谢谢你 。
推荐阅读
- 『程序员』装出新高度! 程序员用代码写招租广告只因不想与其它行业人士合租
- 小回归到爱看剧|在我国越来越没市场了?原来这是必然结果,为什么三星手机
- #程序员#?8年经验程序员跳槽,2个月面试腾讯百度京东等70家公司,总结出4个共同点
- 程序员■Java程序员必知:HashMap进行put操作会不会引起死循
- 程序员@同学在加拿大当程序员,对比国内程序员的待遇,差距这么大
- #程序员#腾讯T4:结合我多年工作经验给程序员的几点忠告,别再埋头苦干了
- 沉默不语666|12更具科技感,网友:这是要逆袭了,华为Mate40多个配置曝光,比iPhone
- #苹果#印度正式宣布!苹果组装业务被迫暂停,美科技界:这是在帮中国?
- 智能手机那点事|红米9价格开始松动,这是要加速淘汰4G?,速度有点快
- [外卖员]美团新交通工具四轮车,引骑手争议,外卖员:这是要端掉咱的饭碗