社区
Web 开发
帖子详情
用PreparedStatement是否就可以防止SQL注入了啊?
sunboard
2008-12-10 09:19:22
在看些教程,说输入 3' OR 1='1 这个的时候 SQL语句就可以选择全部的东西通过一般的 验证了,这个亲自动手实验过了。后来我用了PreparedStatement发现输入那些也进不了,是否就可以防止注入了呢?
...全文
1090
7
打赏
收藏
用PreparedStatement是否就可以防止SQL注入了啊?
在看些教程,说输入 3' OR 1='1 这个的时候 SQL语句就可以选择全部的东西通过一般的 验证了,这个亲自动手实验过了。后来我用了PreparedStatement发现输入那些也进不了,是否就可以防止注入了呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
fxw780106978
2010-07-04
打赏
举报
回复
十分感谢
julor
2010-05-15
打赏
举报
回复
学习了
老紫竹
2008-12-10
打赏
举报
回复
你猜对了。恭喜你。
注入,只针对手工拼装sql的情形。所以你的Preapred的那个SQL是否安全,才是关键,因为你无需关心参数了。
xinem
2008-12-10
打赏
举报
回复
是的,它完全防止注入。
xinem
2008-12-10
打赏
举报
回复
对
sunboard
2008-12-10
打赏
举报
回复
o o 意思是只要使用PreparedStatement 就随便怎么写了吧?
xinem
2008-12-10
打赏
举报
回复
SQL注入 攻 击 是利用是指利用 设计 上的漏洞,在目 标 服 务 器上运行 Sql语 句以及 进 行其他方式的 攻 击 ,
动态 生成 Sql语 句 时 没有 对 用 户输 入的数据 进 行 验证 是 Sql注入 攻 击 得逞的主要原因。
对 于 JDBC而言, SQL注入 攻 击 只 对 Statement有效, 对 PreparedStatement 是无效的, 这 是因 为 PreparedStatement 不允 许 在不同的插入 时间 改 变查询 的 逻辑结 构。
如 验证 用 户 是否存在的 SQL语 句 为 :
select count(*) from usertable where name='用 户 名 ' and pswd='密 码 '
如果在 用 户 名字段 中 输 入 ' or '1'='1' or '1'='1
或是在 密 码 字段 中 输 入 1' or '1'='1
将 绕过验证 ,但 这种 手段只 对 只 对 Statement有效, 对 PreparedStatement 无效。
PreparedStatement 相 对 Statement有以下 优 点:
1.防注入 攻 击
2.多次运行速度快
3.防止 数据 库缓 冲区溢出
4.代 码 的可 读 性可 维护 性好
这 四点使得 PreparedStatement 成 为访问 数据 库 的 语 句 对 象的首 选 ,缺点是灵活性不 够 好,有些 场 合 还 是必 须 使用 Statement。
mybatis如何
防止
SQL注入
mybatis如何
防止
SQL注入
Java
防止
SQL注入
的几个途径
Java防
SQL注入
,最简单的办法是杜绝SQL拼接,经验和技巧之谈,不错推荐。
java
防止
SQL注入
java
防止
SQL注入
对一个系统十分的重要,系统没有安全保障,那再好的系统也是扯淡。在平时系统开发中一定注意安全漏洞。
防止
sql注入
demo
java版
防止
sql注入
的filter 如果好用,别忘记了来评论一下,受益于更多的人
如何
防止
sql注入
【转载】
简单的放置
sql注入
的文档,转载的,希望可以彼此帮助。
Web 开发
81,117
社区成员
341,739
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章